Я пишу плагин jQuery, и я пишу его стандартным способом без jquery-community, главным образом , чтобы поддерживать переносимость и расширяемость.переменная область видимости и закрытие внутри шаблона модуля javascript instance
У меня возникли проблемы с доступом к переменным, которые были объявлены в функции при доступе к прототипу.
Возможно, у меня есть эта модель очень неправильно, но я надеюсь, что кто-то может указать правильный путь для достижения моей цели, а именно создать несколько экземпляров одного и того же класса.
Проблема возникает, когда я пытаюсь закрыть окно, я получаю сообщение об ошибке «this.auga is undefined». Когда я создаю кнопку закрытия (внутри метода окна построения), я подключил событие click .click(this.hide)
- это еще один метод в прототипе функций. Также мое событие .resize
не работает, потому что метод .centerAuga
использует мое свойство this.win
. Получение ошибки this.win is undefined
.
Почему метод .show
имеет определенный this.auga
, но метод .hide
остается неопределенным? Я понимаю, что я обращаюсь к методу .show
от самого экземпляра, но почему другие методы не имеют доступа к экземпляру?
Это не «сделайте эту работу». Я пишу этот плагин, чтобы лучше ознакомиться с JavaScript. Поэтому, если у кого-нибудь есть понимание, я все уши.
Вот ссылка на пример:
http://jsfiddle.net/G26aM/16/
Я не думаю, что это обязательно проблема. Я думаю, что проблема заключается в том, что прототип доступа к активному экземпляру. Я знаю, как назначить «это» в обычном режиме, я думаю, проблема связана с использованием прототипов методов с объявленным экземпляром. Что такое «этот» доступ в прототипе? –
Нет ничего плохого в использовании этого прототипа. Это похоже на эту проблему, противоречащую jQuery. Например, вы делаете это: this.win.resize (this.centerAuga). Это означает, что в центре Auga «это» больше не будет указывать на ваш объект. Но вы все еще используете это там, чтобы это понимать. –
Я ненавижу, что ты прав, потому что я думал, что знаю, что я делаю. что. http://jsfiddle.net/G26aM/18/ <- работает –