Как вызвать метод объекта из конструктора? - PullRequest
1 голос
/ 15 апреля 2010

var Dog = function (name) { this.name = имя; this.sayName (); }

Dog.prototype.sayName = function() {
  alert(this.name);
}

Я создаю новый экземпляр объекта Dog Dog('Bowwow'), но метод sayName () не определен. Почему?

Или, может быть, я должен сделать что-то вроде (но я не вижу разницы) ...

var Dog = function(name) {

  this.name = name;

  this.sayName();

  this.prototype.sayName = function() {
    alert(this.name);
  }
}

Спасибо.

1 Ответ

5 голосов
/ 15 апреля 2010

JavaScript в этой области немного хитрый, ваш код работает до тех пор, пока вы вызываете Dog с помощью конструктора new.

new Dog("Hello world")

Новый конструктор заставляет this вести себя так, как вы этого хотите. В противном случае это совершенно другое.

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