【发布时间】:2015-07-20 08:14:15
【问题描述】:
假设我有以下代码:
var app = {};
app.post = {
foo: function() {
// defining a variable without the 'var' keyword inside a function.
bar = "Hello!";
}
}
我认为我定义bar 变量的方式并不好。我知道你不应该有 global 变量。但是,我在对象内部的方法中定义了它。
这是一种不好的做法吗?
【问题讨论】:
-
是的。在“严格”模式下,它会导致错误。没有
var,变量是隐式全局的。 -
如果没有
var前缀,如果你在 foo 函数之外使用alert(bar);,你会看到上面的代码使它可以全局访问。 -
您不仅应该为解释器使用
var关键字,还应该为人眼使用:乍一看,bar看起来是全局的。
标签: javascript design-patterns