我对一些node.js行为感到困惑,这与Google控制台不同。
这是一个简单的代码
var t = "GLOBAL";
var objet = {
t : "LOCAL1",
test : function() {
console.log(this.t,t);
}
};
var objet2 = {
t : "LOCAL2",
test : objet.test
};
var test = objet.test;
objet.test();
objet2.test();
test();
此代码有不同的结果。
在node.js中,我有以下结果:
LOCAL1 GLOBAL
LOCAL2 GLOBAL
undefined 'GLOBAL'
在chrome控制台中:
LOCAL1 GLOBAL
LOCAL2 GLOBAL
GLOBAL GLOBAL
我认为直接调用绑定到test.t的函数,这将绑定到全局范围,在chrome中就是这种情况,但在node.js中是节点。
请注意,如果我删除第一行中的var
,则node.js版本会给出相同的结果。
那是怎么回事?看来node.js中有一个我缺少的范围? 有人有线索吗?