这是否被认为是关于范围和变量的不良做法?
Is this considered as a bad practice for regarding to scopes and variables?
假设我有以下代码:
var app = {};
app.post = {
foo: function() {
// defining a variable without the 'var' keyword inside a function.
bar = "Hello!";
}
}
我认为我定义 bar
变量的方式不好。我知道你不应该有 global 变量。但是,我在一个对象内部的方法中定义了它。
这是一种不好的做法吗?
是的,这仍然是一种不好的做法。
如果没有 strict mode,这将导致 bar
被隐式声明为全局。在严格模式下,这会导致错误。
始终使用 var
声明新变量,无论作用域如何(尤其是在内部作用域中)。
假设我有以下代码:
var app = {};
app.post = {
foo: function() {
// defining a variable without the 'var' keyword inside a function.
bar = "Hello!";
}
}
我认为我定义 bar
变量的方式不好。我知道你不应该有 global 变量。但是,我在一个对象内部的方法中定义了它。
这是一种不好的做法吗?
是的,这仍然是一种不好的做法。
如果没有 strict mode,这将导致 bar
被隐式声明为全局。在严格模式下,这会导致错误。
始终使用 var
声明新变量,无论作用域如何(尤其是在内部作用域中)。