Моя проблема: у меня есть 2 внутренних объекта в моем классе js, и я пытаюсь использовать методы из одного из этих объектов в моем другом объекте (примеры того, что я пытаюсь сделать ниже). Я понимаю, почему это не работает из-за объема. Мне просто интересно, есть ли способ заставить его работать.Использование функций между внутренними объектными литералами в 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 'this' не является функцией. –
Как отмечает Pointy, 'self: this' без рамки funciton дает вам что-либо,' 'это вне объекта, скорее всего' self' совпадает с 'window'. – adeneo