如何实现JS手写bind函数同时处理new操作符调用的情况?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1541个文字,预计阅读时间需要7分钟。
目录 + new + 判断函数是否通过 new 被调用 + new 和 bind 实现完整的 bind 结尾 + 大家好,我是前端小西瓜。+ 之前写过一篇关于 JS 中 bind 方法的实现的文章,并给出了实现:+ Function.prototype.myBind=...
目录
- new
- 判断函数是否通过 new 被调用
- new 和 bind
- 实现完整的 bind
- 结尾
大家好,我是前端西瓜哥。
之前写了一篇关于 JS 中 bind 方法的实现的文章,并给出了实现:
Function.prototype.myBind = function(thisArg, ...prefixArgs) { const fn = this; return function(...args) { return fn.call(thisArg, ...prefixArgs, ...args); } }
但没有处理 通过 new 创建实例 的情况。
因为很少会遇到给 bind 返回的函数做 new 操作的场景,所以我没去考虑这种特殊情况。
但面试中还是会涉及到的,我们还是实现一下兼容 new 操作的 bind 写法,顺便学习一下 new 操作符。
因为存在一定上下文,在阅读本文前,建议先阅读前一篇文章:《前端面试题:手写 bind》。
new
我们先学习一下 new 操作符。
本文共计1541个文字,预计阅读时间需要7分钟。
目录 + new + 判断函数是否通过 new 被调用 + new 和 bind 实现完整的 bind 结尾 + 大家好,我是前端小西瓜。+ 之前写过一篇关于 JS 中 bind 方法的实现的文章,并给出了实现:+ Function.prototype.myBind=...
目录
- new
- 判断函数是否通过 new 被调用
- new 和 bind
- 实现完整的 bind
- 结尾
大家好,我是前端西瓜哥。
之前写了一篇关于 JS 中 bind 方法的实现的文章,并给出了实现:
Function.prototype.myBind = function(thisArg, ...prefixArgs) { const fn = this; return function(...args) { return fn.call(thisArg, ...prefixArgs, ...args); } }
但没有处理 通过 new 创建实例 的情况。
因为很少会遇到给 bind 返回的函数做 new 操作的场景,所以我没去考虑这种特殊情况。
但面试中还是会涉及到的,我们还是实现一下兼容 new 操作的 bind 写法,顺便学习一下 new 操作符。
因为存在一定上下文,在阅读本文前,建议先阅读前一篇文章:《前端面试题:手写 bind》。
new
我们先学习一下 new 操作符。

