原型打印不适用于JS

时间:2017-01-03 07:55:20

标签: javascript

我正在尝试创建一个构造函数。然后我试图使用它的原型和印刷"彼得"。但它显示错误。



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();




1 个答案:

答案 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();




我建议您阅读eloquentjavascript.net - The Secret Life of Objects