Доступ к ссылке на объект JavaScript из метода участника

StackOverflow https://stackoverflow.com/questions/3122537

Вопрос

Хорошо, мне интересно, можно ли передать ссылку на объект к функциям. Если вы не понимаете, что я пытаюсь сказать, это может помочь:

//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?

Может быть, я не хватаю что-то, как уже поздно ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top