当在JavaScript中使用OO这个?(When to use this in javascrip

2019-07-30 09:13发布

在Javascript OO,什么时候应该使用this关键字?

另外,如果我想从同一类的另一种方法调用类的方法,我应该用this或功能的只是名字? 例如,这是正确的?

function Foo()
{
   this.bar= function()
   {
      alert('bar');
   }

   this.baz= function()
   {
     this.bar(); //should I use this.bar() or just bar()?
   }
}

Answer 1:

当谈到“面向对象”的JavaScript,这里是一个很好的引导标志迪金森在这里SO链接: 在JavaScript非官方议员 。 它不进入详细介绍,你并不真的现在需要一些其他的东西,但一旦你理解JavaScript是如何工作的,你会看到,它是从普通的面向对象的语言完全不同,当涉及到的东西像什么this的真正含义。

我会说,你的情况,你一定要使用this ,但是也许你的职能应该是在prototype的“类”的一部分(这避免了每次创建新实例时重新定义的功能。)



Answer 2:

我发现3种方式来定义一个JavaScript类很有帮助。



Answer 3:

只是强调和同情的@前面的回答tj111我建议你阅读此 。 为了更好地理解函数的作用域。



Answer 4:

在这种特定情况下,这是最好的地方,使用自变量引用this防止内部混乱的功能和头痛。

function Foo()
{
   var self = this;

   this.bar= function()
   {
      alert('bar');
   }

   this.baz= function()
   {
     self.bar();
   }
}

其中的原因是因为,一切都在JavaScript是一种对象,在this功能中的关键字是指父功能。 通过在一定范围内定义一个变量,你保证变量将保持其范围。



Answer 5:

正确的版本是一个当您尝试调用的函数,不给错误。 如果忽略this ,你会得到一个ReferenceError异常。



Answer 6:

在另一篇关于JavaScript中“功能走样”,我详细解释,结合实例,如何“这个”在JavaScript的工作。 我认为这可能是对你有用。

请检查: JavaScript函数混淆似乎不工作



文章来源: When to use this in javascript OO?