如何手写实现JavaScript中的call、apply和bind以改变函数的this指向?

2026-05-22 13:190阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何手写实现JavaScript中的call、apply和bind以改变函数的this指向?

手写call方法+系统用法:function.call(thisArg, arg1, arg2, ...) 手写实现:function sum(num1, num2) { console.log(num1 + num2, this); return num1 + num2; } Function.prototype.myCall=function(thisArg, ...payload) { // 这里可以添加代码 }

手写call()方法

系统用法:

function.call(thisArg, arg1, arg2, ...)

手写实现:

function sum(num1, num2) { console.log(num1 + num2, this) return num1 + num2; } Function.prototype.mjycall = function(thisArg, ...payload) { // 这里的this是指向的是:调用mjycall方法时,默认绑定的sum方法 // 将隐式绑定的方法命名为fn,之后我们将改变这个fn方法中this的指向,并进行调用 var fn = this // thisArg 是我们要更改绑定后的this指向,要进行对象化处理,并且处理一些null、undefinded边界问题。

阅读全文

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

如何手写实现JavaScript中的call、apply和bind以改变函数的this指向?

手写call方法+系统用法:function.call(thisArg, arg1, arg2, ...) 手写实现:function sum(num1, num2) { console.log(num1 + num2, this); return num1 + num2; } Function.prototype.myCall=function(thisArg, ...payload) { // 这里可以添加代码 }

手写call()方法

系统用法:

function.call(thisArg, arg1, arg2, ...)

手写实现:

function sum(num1, num2) { console.log(num1 + num2, this) return num1 + num2; } Function.prototype.mjycall = function(thisArg, ...payload) { // 这里的this是指向的是:调用mjycall方法时,默认绑定的sum方法 // 将隐式绑定的方法命名为fn,之后我们将改变这个fn方法中this的指向,并进行调用 var fn = this // thisArg 是我们要更改绑定后的this指向,要进行对象化处理,并且处理一些null、undefinded边界问题。

阅读全文