先了解一下prototype的使用
function student(){
this.getName=function(){
alert("student");
}
this.age=18;
return this;
};
function teacher(){
this.getSex=function(){
alert("man");
}
this.age=30;
return this;
};
student.prototype.age=23;
student.prototype = new teacher();//用teacher中的方法跟属性添加到student原型,学生原型中有的就不覆盖,没有的就添加。
if(!student.prototype.getwhere){
student.prototype.getwhere=function(){
alert("Hunan");
}
}
var stu1 = new student();
var tea1 = new teacher();
alert(stu1.age); //18
stu1.getwhere(); //湖南
stu1.getSex(); //man
给类添加原型中未有的属性或者方法是可以的。但是不能覆盖原型中已有的属性跟方法。像上面给学生原型添加了一个取地址方法,又覆盖了学生的年龄,结果输出不是23是18。(注意这些方法属性都是属于对象的)
再看一下JQuery的extend()
var age=6;
var student={
getName:function(){
alert("student");
},
age:18
};
var teacher={
getSex:function(){
alert("man");
},
age:30
};
$.extend(student,teacher);
alert(student.age); //30
student.getSex(); //man
发现原型的age被覆盖了。其实extend最实用的还是用在为jquery扩展静态方法,用Jquery.fn.extend()为jquery的实例扩展方法。
其实这些Json对象跟function 构成的类对象。都有很多方法添加属性跟方法,这里只是简单介绍一种方式.