我的問題是我在我的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