Node.js 节点[file.js]使用运行浏览器和nodejs.editor生成不同的结果
我在test.js文件中有下面一段代码Node.js 节点[file.js]使用运行浏览器和nodejs.editor生成不同的结果,node.js,command-line,Node.js,Command Line,我在test.js文件中有下面一段代码 function foo(){ console.log(this.bar); } var bar = "bar1"; var obj = {bar: "bar2"}; foo(); foo.call(obj); 当我运行node test.js时,我得到了结果 undefined bar2 bar1 bar2 当我在node.editor中运行时,我得到了结果 undefined b
function foo(){
console.log(this.bar);
}
var bar = "bar1";
var obj = {bar: "bar2"};
foo();
foo.call(obj);
当我运行node test.js时,我得到了结果
undefined
bar2
bar1
bar2
当我在node.editor中运行时,我得到了结果
undefined
bar2
bar1
bar2
我认为第二个结果是对的,但第一个方法有什么问题?因为我总是走第一条路
它们之间有什么区别 我认为当使用'node test.js'时,node会为test.js代码创建一个包装器,因此没有全局变量栏
在.edit方式下,全局范围中定义了一个变量栏。简单来说,当您使用
节点test.js运行代码时,节点js将要求('test.js')
运行它。但是当您使用REPL模式时,您输入的代码将直接在REPL中执行
使用require
时,test.js
上的变量不会绑定为全局变量。所以不能像这样访问.bar
你所说的节点编辑器是什么意思,是REPL模式吗?是的,在REPL中键入“.editor”这是你的答案,