У меня есть этот объект JSСохранение этого объекта в пользовательской частной переменной
var toggleItem = {
attrData : '',
toggleNew : '',
toggleOld : '',
//var self : this,
init : function(){
self = this;
self.listener();
},
listener : function(){
jQuery('.btn-save').click(function(){
var current = this.id.split('_').pop();
self.toggleNew = jQuery('.toggle-data-new_'+current).val();
self.toggleOld = jQuery('.toggle-data-old_'+current).val();
self.updateForm();
});
},
updateForm : function(){
jQuery('#toggle-product-form #new').val(self.toggleNew);
jQuery('#toggle-product-form #old').val(self.toggleOld);
jQuery('#toggle-product-form').submit();
},
}
В прошлом я часто сталкивался вопрос о this
стоимости получения изменен на любой элемент, который я ссылку с jQuery
. В этом случае я хотел бы хранить this
в новой переменной с именем self
. Но важно, чтобы self
не стал доступен по всему миру.
Вы увидите в верхней части объекта, где я написал //var self : this,
, теперь закомментирован. Это связано с тем, что размещение var
перед ним делает эту ошибку - Unexpected identifier
в консоли. Но если я удалю часть var
, я остаюсь с той же проблемой, что и сейчас, разместив ее в функции init
(она глобальная).
Вопрос Я хочу, чтобы он был доступен для всего, что находится внутри объекта, и ничего снаружи?
Независимо от того, какое решение работает, я также планирую применить к другим трем переменным, указанным в верхней части.
NB Я знаю, что я мог бы использовать имя объекта вместо себя и оставить этот глобальный с относительно небольшим риском его конфликта с чем-то другим, но я уверен, значение this
, сохраняя его доступным только (в его текущей форме) из объекта toggleItem
.
Это только небольшая часть общего объекта. Мне бы очень хотелось узнать, как объявить «это» один раз, но для всего объекта использовать – develophper
@ThomasRyan См. Мое редактирование. –