JavaScript学习笔记—函数的bind

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
posted @ 2023-01-25 12:43  程序员张3  阅读(31)  评论(0编辑  收藏  举报