我的问题是我在我的js类中有2个内部对象,我试图从其他对象中的一个对象使用方法(我想要的例子以下做)。我明白为什么因为范围而不起作用。我只是想知道是否有办法让它工作。javascript内部对象文字之间的函数使用
var Class1 = {
self : this,
Obj1 : {
Obj1Method : function() {
alert("Do something");
},
Obj1Method2 : function() {
alert("Do something else");
},
InnerObj1 : {
InnerNestObj1Method : function (val) {
alert(val + 2);
}
}
},
Class1Method2 : function() {
this.Obj1.Obj1Method2();
},
Obj2 : {
Obj2Method : function (val2) {
self.Obj1.InnerObj1.InnerNestObj1Method(val2);
},
Obj2Method2 : function() {
self.Class1Method2();
}
}
};
Class1.Obj1.InnerObj1.InnerNestObj1Method(3); //works
Class1.Class1Method2(); //works
Class1.Obj2.Obj2Method2(); //No bueno
Class1.Obj2.Obj2Method(5); //No bueno
'self'属性的值不会**为对'Class1'的引用。无论this的值是否在对象初始值设定项的外部。 – Pointy
@Liam'这个'不是功能。 –
正如Pointy所指出的那样,“self:this'没有函数作用域给出了这个对象之外的任何东西,很可能'self'和'window'是一样的。 – adeneo