快速提问,还有一个我自己要解决的问题。我将从一个例子开始。
object = {
somevariable: true,
someothervariable:31,
somefunction: function(input){
if (somevariable === true){
return someothervariable+input;
}
}
}
object.somefunction(3);
显然这不起作用。我是否必须说object.somevariable
和object.someothervariable
或者是否有一种方法可以引用属于本地对象的变量,而无需明确引用该对象?
由于
Gausie
答案 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));