Вызов метода в объекте Javascript - PullRequest
0 голосов
/ 06 марта 2012

Я пытаюсь создать объект javascript, который может вызывать другие методы внутри себя. Тем не менее, я сталкиваюсь со странной проблемой, которую просто не могу понять.

У меня есть следующий код

myObjectDef = function() {
    this.init = function() {
        //do some stuff
        this.doSecondInit();
    }
    this.doSecondInit = function() {
        //do some more stuff
    }
}

myObject = new myObjectDef();
myObject.init();

Я получаю сообщение об ошибке «Сообщение: объект не поддерживает это свойство или метод». И это заканчивается на this.doSecondInit () ;. Я не могу понять, почему он это делает. Мой код отлично работает до вызова второго метода. Как мне сделать эту работу?

1 Ответ

3 голосов
/ 06 марта 2012

Здесь есть дополнительный набор скобок:

this.doSecondInit() = function() {

Вы не можете присвоить результат вызова функции, не говоря уже о результате функции, которая даже не существует.

После редактирования ваша вещь, кажется, работает нормально:

http://jsfiddle.net/nabVN/

Вы уверены, что в вашем коде не было такой же опечатки? Лучше начать привыкать к тому, чтобы не ставить этот () после каждого вызова функции, что, вероятно, является плохой привычкой, перенесенной из языков, где функции не являются значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...