Javascript对象:从方法中访问对象变量

时间:2010-01-05 15:29:32

标签: javascript json oop

快速提问,还有一个我自己要解决的问题。我将从一个例子开始。

object = {
    somevariable: true,
    someothervariable:31,
    somefunction: function(input){
        if (somevariable === true){
            return someothervariable+input;
        }
    }
}

object.somefunction(3);

显然这不起作用。我是否必须说object.somevariableobject.someothervariable或者是否有一种方法可以引用属于本地对象的变量,而无需明确引用该对象?

由于

Gausie

2 个答案:

答案 0 :(得分:5)

使用特殊关键字this,它指的是调用函数的对象:

var thing = {
    somevariable: true,
    someothervariable:31,
    somefunction: function(input){
        if (this.somevariable === true){
            return this.someothervariable+input;
        }
    }
}
thing.somefunction(3);

var otherThing = {
    somevariable: true,
    someothervariable:'foo',
    amethod: thing.somefunction
};
otherThing.amethod('bar');

小心使用像“object”这样的变量名称。 JS区分大小写,因此它不会与内在Object发生冲突,但您可能会遇到其他语言的麻烦。

答案 1 :(得分:1)

添加“this”时,它对我有用。

var o = {
    somevariable: true,
    someothervariable:31,
    somefunction: function(input){
        if (this.somevariable === true){
            return this.someothervariable+input;
        }
    }
}

alert(o.somefunction(3));