bind():函数的方法,可以用来创建一个新的函数
- bind可以为新函数绑定this
- bind可以为新函数绑定参数
function fn(a, b, c){
console.log("fn执行了~~~", this);
console.log(a,b,c);
}
const obj = {name: "孙悟空"};
const newFn = fn.bind(obj, 10); // 10 设置默认固定值,传参时无法再修改
newFn(20, 30, 40); // fn执行了~~~ obj 10 20 30
箭头函数:没有自身的this,它的this由外层作用域决定,也无法通过call apply和bind修改它的this,箭头函数中没有arguments
const obj = {name: "孙悟空"};
const arrowFn = () => {
console.log(this);
};
arrowFn(); // window
arrowFn.call(obj); // window
arrowFn.apply(obj); // window
const newArrowFn = arrowFn.bind(obj);
newArrowFn(); // window
class MyClass {
fn = () => {
console.log(this);
}
}
const mc = new MyClass();
mc.fn.call(window); // MyClass
标签:obj,bind,JavaScript,笔记,window,arrowFn,const,fn
From: https://www.cnblogs.com/zibocoder/p/17066851.html