Доступ к ссылке на объект JavaScript из метода участника
-
30-09-2019 - |
Вопрос
Хорошо, мне интересно, можно ли передать ссылку на объект к функциям. Если вы не понимаете, что я пытаюсь сказать, это может помочь:
//so i declare the variable `Editor`
var Editor = new (function(e, d){
this.edit = e;
this.dyna = d;
this.old = ""; //and set these variables inside the object
this.update = function() {
var ta = $(Editor.edit)[0].value, dy = $(Editor.dyna)[0].contentDocument;
//what i want is to be able to refer to the variables (ie. "edit") without using "Editor."
if (Editor.old !== ta) {
$(dy).text(ta);
Editor.old = ta;
}
window.setTimeout(Editor.update, 150);
}
return this;
})("editor","dynamic");
Так что для функции обновления я хочу сделать что-то вроде:
this.update = function() {
var ta = $(edit)[0].value, dy = $(dyna)[0].contentDocument;
if (old !== ta) {
$(dy).text(ta);
old = ta;
}
window.setTimeout(update, 150);
}
И это дает мне переменные (редактировать, дина, старую) от Editor
объект. Спасибо.
Решение
this
Внутри вашей функции относится к объекту анонимной базовой функции, которую вы создали.
Использовать this.propertyName
Для доступа к его свойствам.
var ta = $(this.edit)[0].value, dy = $(this.dyna)[0].contentDocument;
Другие советы
Почему вы не просто используете this
приставка. Так this.edit[0].value
?
Может быть, я не хватаю что-то, как уже поздно ...
Не связан с StackOverflow