代码之家  ›  专栏  ›  技术社区  ›  Ali

什么时候在javascript OO中使用它?

  •  8
  • Ali  · 技术社区  · 15 年前

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

    另外,如果我想从同一类的另一个方法调用一个类的方法,我应该使用 或者只是函数的名称?这是正确的吗?

    function Foo()
    {
       this.bar= function()
       {
          alert('bar');
       }
    
       this.baz= function()
       {
         this.bar(); //should I use this.bar() or just bar()?
       }
    }
    
    6 回复  |  直到 15 年前
        1
  •  6
  •   Blixt    15 年前

    Private Members in JavaScript . 它确实详细介绍了一些您现在并不真正需要的其他东西,但一旦您了解了JavaScript的工作原理,您就会发现它与您的普通面向对象语言在诸如 this 真的很重要。

    我想说,在你的情况下,你肯定应该使用 ,但也许你的功能应该在 prototype “类”的一部分(这避免了每次创建新实例时重新定义函数)

        2
  •  1
  •   Ali    15 年前
        3
  •  0
  •   Artem Barger    15 年前

    this . 更好地理解函数作用域。

        4
  •  0
  •   TJ L    15 年前

    在这个特定的实例中,最好使用自引用变量来代替 this 防止函数内部的混乱和头痛。

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

    之所以这样做是因为javascript中的所有内容都是对象

        5
  •  0
  •   sth    15 年前

    正确的版本是在尝试调用函数时不会给出错误的版本。如果你忽略了 this 你会得到一份工作的 ReferenceError 例外

        6
  •  0
  •   Community CDub    7 年前

    在另一篇关于JavaScript中的“函数别名”的文章中,我用示例详细解释了“这”在JavaScript中的工作原理。我想这可能对你有用。

    JavaScript function aliasing doesn't seem to work