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)
谢谢.
JavaScript在这方面有点狡猾,只要你使用new
构造函数调用Dog,你的代码就可以运行.
new Dog("Hello world")
Run Code Online (Sandbox Code Playgroud)
新构造函数的this
行为与您希望的一样.否则它完全不同.