<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function People(name,age){
this.name=name;
this.age=age;
this.fn=function(){
alert(this.name+","+this.age);
};
//return 1; 如果返回是非对象,实例化时就隐式的返回一个对象;若返回的是一个对象[对象,数组,函数],实例化的对象就是这个对象
/*return {
a:1
};*/
/*return function(){
var a=0;
alert(2);
};*/
/*return [2,3,32];*/
//return "21";
}
//People.prototype=
var p1=new People("sun",22);
var p2=new People("QQ",12);
p1.fn();
p2.fn();
//console.log(p1.fn==p2.fn);//false, 每个实例都有一个函数,浪费空间
function Car(color,age){
this.color=color;
this.age=age;
}
Car.prototype.showColor=function(){
alert(this.color);
}; //如果是个对象,若有个实例改变了,其它也改变了;
Car.prototype.hello=new function(a){
this.a=a;
};
Car.prototype.showAge=function(){
alert(this.age);
};
var c1=new Car("red",1);
var c2=new Car("green",2);
c1.showColor();
c2.showAge();
c1.hello(2);
alert(c2.hello().a); //弹出来的是2
console.log(c1.showColor==c2.showColor);//true, 每个实例指向同一个函数;
</script>
</head>
<body>
</body>
</html>