Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.03.2013, 14:42
Аспирант
Отправить личное сообщение для _axl Посмотреть профиль Найти все сообщения от _axl
 
Регистрация: 21.07.2009
Сообщений: 39

Вопрос, наверное, по контекстам
Вот пишу такой код:
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. Почему?
Ответить с цитированием
  #2 (permalink)  
Старый 21.03.2013, 14:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Потеряли ключевое словое new перед вызовами конструкторов. В итоге вы просто исполнили функции, при этом this в обоих случаях указывает на window. То есть вы определили метод window.show - можете это сами проверить.
Ответить с цитированием
  #3 (permalink)  
Старый 21.03.2013, 14:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Причем return this - необязательно делать, конструктор вернет this и без этого.
Ответить с цитированием
  #4 (permalink)  
Старый 21.03.2013, 15:00
Аспирант
Отправить личное сообщение для _axl Посмотреть профиль Найти все сообщения от _axl
 
Регистрация: 21.07.2009
Сообщений: 39

Т.е. надо было так:
a = new function() {
b = new function() {

Понятно, спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по each() и перебору строк таблицы battrack jQuery 1 09.02.2012 14:30
Наверное, массивы 4ildren Общие вопросы Javascript 20 01.10.2011 10:39
вопрос. пустяковый, наверное. InZillo Серверные языки и технологии 3 25.02.2011 10:55
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
Вопрос по CSS (я, наверное, не туда попал...) parzh-junior Элементы интерфейса 12 27.12.2009 20:19