18910140161

JavaScript 修改this指针

顺晟科技

2021-06-16 10:38:24

350

科目

封装函数f,使得f的这个指向指定的对象。

输入示例

bindThis(函数(a,b) {

返回this . test a b;

},{test: 1})(2,3);

输出示例

分析

本主题的要求是封装一个函数bindThis,它有两个参数,个参数是一个函数f,里面有这个指针,第二个参数是一个对象obj。执行bindThis后,返回一个函数,这个函数中的这个被绑定到obj。

功能f(a,b) {

返回this . test a b;

}

函数绑定此(f,obj) {

//你取得了什么成就

}

//执行函数

var a=Bindithy(f,{ test :1 });

a(2,3);

解决办法

javascript :bind绑定应用调用三剑客

1.解决方案1:使用绑定()

功能f(a,b) {

返回this . test a b;

}

函数绑定此(f,obj) {

//你取得了什么成就

返回f . bind(obj);

}

//执行函数

var a=Bindithy(f,{ test :1 });

console.log(a(2,3));

console.log(f(2,3));

圆盘烤饼

2.解决方案2:使用应用()

函数绑定此(f,obj) {

//你取得了什么成就

return function () {

返回f.apply(obj,arguments);

};

}

3.解决方案3:使用call()

函数绑定此(f,obj) {

//你取得了什么成就

返回函数(a,b) {

return f.call(obj,a,b);

};

}

call和apply的基本区别在于参数不同。Apply()接收两个参数,个是绑定到此的值,第二个是参数数组。至于call(),它的个参数也是绑定到这个的值,但是它接受不定参数而不是数组,这意味着您可以像通常向函数传递参数一样逐个传递这些参数。

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航