前言 大家都知道,Javascript是单线程、顺序执行的,通过事件循环来处理异步。而且稍有开发经验的同学也知道,利用setTimeout、setInterval以及Promise可以延时代码的执行。
顺晟科技
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(),它的个参数也是绑定到这个的值,但是它接受不定参数而不是数组,这意味着您可以像通常向函数传递参数一样逐个传递这些参数。
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06