js中通过构造函数创建对象

/* js中通过构造函数创建对象 
 * 通过this完成属性的定义
 */
function Person(name,age){
	this.name = name;
	this.age = age;
	//这样定义的缺点:每次创建对象会占用新的内存空间
	/*
	this.say = function(){
		alert(this.name+","+this.age);
	}*/
	
	this.say = aaa; //这里竟然不加括号,蛋疼。
}

function aaa(){
	alert(this.name+","+this.age);
}

var p1 = new Person("张三",20);
var p2 = new Person("李四",30);
p1.say();
p2.say();
//alert(p1.say == p2.say); //false 
alert(p1.say == p2.say); //aaa方法放到外部时,true

你可能感兴趣的:(javascript)