【发布时间】:2010-11-11 18:49:48
【问题描述】:
在 Javascript OO 中,何时应该使用 this 关键字?
另外,如果我想从同一个类的另一个方法调用一个类的方法,我应该使用this 还是只使用函数的名称?例如,这是正确的吗?
function Foo()
{
this.bar= function()
{
alert('bar');
}
this.baz= function()
{
this.bar(); //should I use this.bar() or just bar()?
}
}
【问题讨论】:
-
您不能只使用
bar(),因为this在JavaScript 中从不隐含(因为它不是真正的面向对象语言。)bar()将首先查找定义为@987654327 的变量@ 在函数this.baz中,然后它会在函数Foo中查找定义为bar的变量,最后它会在全局范围内查找,如果失败则会抛出错误。 -
学习 JavaScript 原型系统很重要,所以这是一个很好的问题。但如果我打算用 JavaScript 做一个大型的 OO 程序,我会使用 Joose.js 或 Js.Class。
-
如果他们不同意或愚蠢地认为 S.O.否决票的定义 =\
标签: javascript oop scope