nodejs这个点在函数中是未定义的
在node.js v6.0.0中运行此代码:
x = 3; var foo = { x:1, bar: { x: 2, baz: function() { console.log(this.x); } } }; foo.bar.baz(); var a = foo.bar.baz; a();
错误:
2 TypeError: Cannot read property 'x' of undefined
但在Chrome 52.0.2743.116控制台中:
2 3
这只有在ES6中处于严格模式时才会发生。 在这种情况下,顶层“这个”并不指向任何东西。 如果没有“严格使用”(在Nodejs中定义模块时隐式设置),则行为将与您在Chrome中看到的相同。
请注意,为了使代码在严格模式下工作,您需要在x = 3之前放置一个“var”。