Raa*_*n W 3 javascript node.js
以下函数在节点和浏览器中提供两种不同的结果:
(function funfunfun(root, factory) {
console.log(root === this);
factory(root);
})(this, function (root) {
console.log(root === this);
});
Run Code Online (Sandbox Code Playgroud)
在节点中,它将输出两次false.在浏览器中,它将输出true两次,正如我所料.
所以问题是......为什么?
在浏览器中,在未绑定的函数中,this将指向窗口对象.这就是为什么你在浏览器中获得两个真相.
现在在nodejs中,窗口是等价的global.如果你跑步,this===global你将在repl中成真.
但从档案来看,这不等于global.
从脚本到命令行的节点中的全局变量赋值