Вопрос, наверное, по контекстам
Вот пишу такой код:
a = function() {
this.show = function() {
alert(222);
}
return this;
}()
b = function() {
this.show = function() {
alert(111);
}
this.letSee = function() {
a.show();
}
return this;
}()
b.letSee();
Вызов b.letSee() дает вызов алерт 111, т.е. ф-ии show() у объекта b, хотя я явно указываю, что нужен объект a. Почему? |
Потеряли ключевое словое new перед вызовами конструкторов. В итоге вы просто исполнили функции, при этом this в обоих случаях указывает на window. То есть вы определили метод window.show - можете это сами проверить.
|
Причем return this - необязательно делать, конструктор вернет this и без этого.
|
Т.е. надо было так:
a = new function() {
b = new function() {
Понятно, спасибо. |
| Часовой пояс GMT +3, время: 16:50. |