我正在尝试了解 JavaScript 词法范围和闭包。我使用 Node.js 运行了这个示例,然后在浏览器中得到了 2 个不同的输出。
测试chrome Version 80.0.3987.149 (Official Build) (64-bit)
和Node v12.16.1
var obj1 = {
name: "Pulsar",
bike: function() {
console.log(this.name);
}
}
var obj2 = { name: "Gixxer", bike: obj1.bike };
var name = "Ninja";
var bike = obj1.bike;
bike(); // "Ninja"
obj1.bike(); // "Pulsar"
obj2.bike(); // "Gixxer"
这段代码在Vanilla JavaScript. 输出是:
Ninja
Pulser
Gixxer
在NodeJS输出中是:
undefined
Pulsar
Gixxer
有人可以解释一下吗?
HUX布斯
慕尼黑8549860
相关分类