如何实现JS手写bind函数同时处理new操作符调用的情况?

2026-04-02 22:450阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1541个文字,预计阅读时间需要7分钟。

如何实现JS手写bind函数同时处理new操作符调用的情况?

目录 + 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分钟。

如何实现JS手写bind函数同时处理new操作符调用的情况?

目录 + 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 操作符。

阅读全文