var obj = { a: 10, b: function () { console.log(this.a); //10 }, c: function () { return() => { console.log(this.a); //10 }; } }; obj.b(); obj.c()();
箭头函数通过 call() 或 apply() 方法调用一个函数时,只传入了一个参数,对 this 并没有影响。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
let obj2 = { a: 10, b: function (n) { let f = n => n + this.a; return f(n); }, c: function (n) { let f = n => n + this.a; let m = { a: 20 }; return f.call(m, n); } }; console.log(obj2.b(1)); // 11 console.log(obj2.c(1)); // 11