将代码转换为对象时如何使用“this”?

时间:2014-07-25 04:46:48

标签: javascript oop

因此,我可以在网页上的多个位置重用代码,我将其转换为面向对象的Javascript。原始代码如下所示:

foo = 42;
function bar(a,b) {
    foo = a * foo + b;
}
...
bar(1,1)

我想我希望它看起来像这样:

function Example() {
    this.foo = 42;
    this.bar = function() {
        this.foo = a * this.foo + b;
    }
}
var one = new Example();
var two = new Example();
...
one.bar(1,1);
two.bar(2,3);

但是,我不确定我是否正在使用'这个'正确嵌套在嵌套函数中。我注意到我要转换的一些功能是事件处理程序已经引用了这个'这个'在他们的身体里。我该如何区分这个'已经在' this'的事件处理程序中我想用来访问我的本地变量?

1 个答案:

答案 0 :(得分:1)

在Example类/函数中创建一个本地var,然后您可以引用相应的this对象。

function Example() {
   var self = this;
   this.foo = 42;
   this.bar = function() {
      self.foo = a * self.foo + b;
   }
}