function foo(){ return (a) => { console.log(this.a) // 箭头函数下的 this } } var obj1 = { a: 2 } var obj2 = { a: 3 } var bar = foo.call(obj1); bar.call(obj2); // 2
foo 的 this 绑定到 obj1,bar 的 this 也会绑定到 obj1,箭头函数的绑定无法被修改。
function foo(){ setTimeout(()=>{ // 这里的 this 在词法上继承自 foo() console.log(this.a) }) } var obj = { a: 2 } foo.call(obj); //2
原文:https://www.cnblogs.com/wzndkj/p/12460159.html