关于javascript:这是否被视为关于范围和变量的不良做法?

Is this considered as a bad practice for regarding to scopes and variables?

本问题已经有最佳答案,请猛点这里访问。

假设我有以下代码:

1
2
3
4
5
6
7
8
var app = {};

app.post = {
    foo: function() {
        // defining a variable without the 'var' keyword inside a function.
        bar ="Hello!";
    }
}

我认为我定义bar变量的方式并不好。 我知道你不应该有全局变量。 但是,我在一个对象内部的方法中定义了它。

这是一种不好的做法吗?


是的,这仍然是一个不好的做法。

如果没有严格模式,这将导致bar被隐式声明为全局。 使用严格模式,这会导致错误。

无论范围如何(尤其是在内部范围内),始终使用var来声明新变量。