我正在尝试创建一个构造函数。然后我试图使用它的原型和印刷"彼得"。但它显示错误。
function main(){
var func1 = function(){
this.name = "Peter";
this.age = 27;
this.class = "10";
}
func1.prototype.printName = function(){
console.log(this.name);
}
return func1;
}
var a = main();
a.printName();

答案 0 :(得分:3)
您正在将构造函数func1
分配给a
,而不是func1
的实例。只有func1
的实例具有printName
方法。在某些时候,您需要致电new func1()
或new a()
。例如。你可以return new func1();
代替return func1;
。
请看下面的简化示例。
var func1 = function() {
this.name = "Peter";
this.age = 27;
this.class = "10";
}
func1.prototype.printName = function() {
console.log(this.name);
}
var a = new func1();
a.printName();