Javascript:我是否需要为对象中的每个变量放置this.var?
在C ++中,我最熟悉的语言,通常是一个声明这样的对象:
class foo{public: int bar; int getBar() { return bar; }}
调用getBar()
工作正常(忽略bar
可能未初始化的事实)。内部的变量bar
在getBar()
类的范围内foo
,所以我不需要说,this->bar
除非我真的需要说清楚我指的是' bar
而不是比如参数。
现在,我正试图在Javascript中开始使用OOP。所以,我查找如何定义类并尝试相同的事情:
function foo(){ this.bar = 0; this.getBar = function() { return bar; }}
它给了我bar is undefined
。更改bar
以this.bar
解决问题,但为每个变量执行此操作会使我的代码变得非常混乱。这对每个变量都是必要的吗?由于我找不到与此相关的任何问题,这让我觉得我做的事情从根本上是错误的。
编辑:是的,所以,从评论我得到的是,this.bar
一个对象的属性,引用不同于bar
局部变量的东西。有人可以说,为什么这就是范围和对象,以及是否有另一种方法来定义一个没有必要的对象?