this
的值是否由函数调用的词汇性质决定?
function Foo() {}
Foo.prototype.bar = function() { console.log('this: ', this); }
Foo.prototype.bar(); // this: Foo.prototype
var fn = Foo.prototype.bar;
fn(); // this: Window
答案 0 :(得分:2)
this
的值是否由函数调用的词汇性质决定?
是的,情况确实如此,但不适用于ES6 arrow functions。他们创建的环境不具有this
值。相反,this
将引用定义函数的环境的this
值。
更多信息:MDN - this