js prototype属性

function Person(name,sex) {  //Person类的构造函数  
    this.name = name;  
    this.sex = sex;  
}  
Person.prototype.age = 12;   //为Person类的prototype属性对应的prototype对象的属性赋值,  
                             //相当于为Person类的父类添加属性  
Person.prototype.print = function() { //为Person类的父类添加方法  
    alert(this.name+"_"+this.sex+"_"+this.age);  
};  
 
var p1 = new Person("name1","male"); //p1的age属性继承子Person类的父类(即prototype对象)  
var p2 = new Person("name2","male");  
 
p1.print();  //name1_male_12  
p2.print();  //name2_male_12  
 
p1.age = 34; //改变p1实例的age属性   p1属性在不指向Person的prototype属性
p1.print();  //name1_male_34  
p2.print();  //name2_male_12  
 
Person.prototype.age = 22;  //改变Person类的超类的age属性  
p1.print();  //name1_male_34(p1的age属性并没有随着prototype属性的改变而改变)  
p2.print();  //name2_male_22(p2的age属性发生了改变)  
 
p1.print = function() {  //改变p1对象的print方法  
    alert("i am p1");  
}  
 
p1.print();  //i am p1(p1的方法发生了改变)  
p2.print();  //name2_male_22(p2的方法并没有改变)  
 
Person.prototype.print = function() { //改变Person超类的print方法  
    alert("new print method!");  
}  
 
p1.print();  //i am p1(p1的print方法仍旧是自己的方法)  
p2.print();  //new print method!(p2的print方法随着超类方法的改变而改变)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值