如何从构造函数调用对象的方法?

Kir*_*lla 2 javascript oop

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

Dog.prototype.sayName = function() {
  alert(this.name);
}
Run Code Online (Sandbox Code Playgroud)

我正在创建Dog对象的新实例Dog('Bowwow'),但方法sayName()未定义.为什么?

或许我应该做点什么(但我看不出差别)......

var Dog = function(name) {

  this.name = name;

  this.sayName();

  this.prototype.sayName = function() {
    alert(this.name);
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

aaa*_*aaa 5

JavaScript在这方面有点狡猾,只要你使用new构造函数调用Dog,你的代码就可以运行.

new Dog("Hello world")
Run Code Online (Sandbox Code Playgroud)

新构造函数的this行为与您希望的一样.否则它完全不同.