bind方法
发布时间:2022-10-26 02:46:52 403 相关标签:
<script>
//演示bind函数的使用
function count(a, b) {
return a + b + this.c;
}
let num = {
c: 20
};
let numCount = count.bind(num, 10, 30);
console.log(numCount()); //60
//封装bind函数
/*
思路:
1.bind方法不会自动调用,所以先返回一个函数
2.返回后按照call函数的原理进行传参
3.此时传参会出现两种情况,第一种情况是在bind函数中传参,第二种情况是在bind函数内返回的函数中传参
4.但是调用Fn函数时bind函数中的参数会先传入,如果bind函数中没有参数,那么就会接收bind函数内返回的函数的参数
*/
function bind(Fn, obj, ...args) {
return function(...args2) {
obj.temp = Fn;
console.log(...args, ...args2);
let res = obj.temp(...args, ...args2);
delete obj.temp;
return res;
}
}
function add(a, b) {
return a + b + this.c;
}
let obj = {
c: 5
}
//第一种情况:参数在bind函数中
let b1 = bind(add, obj, 5, 15);
console.log(b1()); //25
//第二种情况:参数在bind函数返回的函数中
let b2 = bind(add, obj);
console.log(b2(25, 35)); //65
</script>
文章来源: https://blog.51cto.com/u_15011997/5788182
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报