обрашение к обьекту (this)
есть обьект
obj = {
method1 : function () {
//*****
}
method2 : function () {
this.method1();
}
}
в мотоде 2 вызываем метод 1 через зис, а как в другом случаии вызвать метод родителя, не прибегая к его имени?
parent = {
method1 : function () {
//*****
}
child : {
method1 : function () {
Родитель.method1(); // как вызвать метод 1 родителя??
parent.method1(); // вот такой вариант не годится
}
}
}
|
Используй метод bind (он не кроссбраузерный, но легко эмулируется):
child.method1 = parent.method1.bind( parent ); |
похожий вопрос.
как в цепочке a.b.c, имея на руках с выйти на b? Наверно, что никак, не? |
PashPP, никак. С другой стороны объект c не волшебным же образом попадает в b. Значит в какой-то момент есть ссылка на b, и ее можно добавить в с.
|
Используй функцию Class )))))))))))))))))))))))))))))))))))))))))))))))
ахаххахаахаха http://javascript.ru/forum/misc/3215...y-i-cikly.html |
Maxmaxmахimus, когда уже статью-то запилишь? :)
|
ДА ЗДРАВСТВУЙ КОВНОКОД :D :D :lol: :lol: :D
простой вариант без указания имени
((self = parent = {
method1 : function () {
alert('parent');
},
child : {
method1 : function () {
this.parent.method1(); // как вызвать метод 1 родителя??
parent.method1(); // вот такой вариант не годится
}
}
}).child.parent = self), self = window;
parent.child.method1();
alert(self);
P.S. код можно улучшить:victory: |
DimaJS, ошибку пишет
|
Hekumok,
где? p.s. какой браузер? |
а, это я со смарта сидел (через оперу мобайл), с компа всё норм :) вот какая ошибка была - error: Security error: attempted to read protected variable: child
|
| Часовой пояс GMT +3, время: 16:03. |