如下代码非常形象地说明了,JavaScript函数中的this不是在函数声明的时候而是在函数运行的时候定义的。
React组件也遵循这种特性。所以组件方法的“调用者”不同会导致this不同,注意这里“调用者”是指函数执行的当前对象。
var human = {
speak: function() {
console.log(this);
}
}
human.speak(); // 打印了human
var s = human.speak;
s(); // 打印了window对象