我的代码如下:
this.color = "red";
var o = {color: "blue"};
function sayColor() {
console.log(this.color);
}
sayColor();
sayColor.call(this);
sayColor.call(o);
@Jim Deville,
以下是新发现:
node functionTypeThisExample.js
时,它会输出“undefined,red,blue”。所以我的问题是在最后一种情况下会发生什么?
答案 0 :(得分:2)
this
与JS中的this
没有区别。它是表示当前上下文的对象。
this.color = "red";
这里,这是全局对象
var o = {color: "blue"};
function sayColor() {
console.log(this.color);
}
sayColor();
在这种情况下,这仍然是全局对象
sayColor.call(this);
这是全局对象,但是通过调用应用,而不是“默认情况下”
sayColor.call(o);
这是o
当我在节点(OS X上为0.6.18)中运行它时,我会像在浏览器中那样得到“红色,红色,蓝色”。