在此处创建函数 foo
时,我引用了一个尚未声明的变量 fromTheFuture
。这确实可以按预期工作,但是为什么?它被认为是危险的或不良的做法吗?
var foo = function(x) {
return fromTheFuture * x;
};
var fromTheFuture = 5;
console.log(foo(10));
我认为这非常方便,如果您有多个函数想要以循环方式相互使用 - 无需在方法开头使用 var
声明它们。
最佳答案
在调用 foo
时,定义了 fromTheFuture
。更准确地说,由于提升,您的代码本质上是:
var foo, fromTheFuture;
foo = function(x) {return fromTheFuture*x;};
fromTheFuture = 5;
console.log(foo(10));
如果您在 fromTheFuture=5
之前调用 foo(10)
,您将得到 NaN
。
关于javascript - 为什么我可以引用一个尚未在 Javascript 中定义的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331919/