JS中prototype的含义

javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。
举例:

//通过B对象的prototype,访问到A对象的属性和方法
function A(){
this.name="A属性";
this.fangfa=function(){
alert("A方法");
}
}
 
function B(){
}
 
B.prototype=new A(); //我的理解是把A对象中的属性和方法全部克隆到B,但不覆盖B中的数据
var test=new B(); //new 一个对象
alert(test.name); //因为实例化 B的对象,所以会查看B对象<strong>自身</strong>有木有name属性,没有的话就查看prototype克隆的A对象属性,如果都没有,就会弹出undefined的框框
test.fangfa(); //原理同上
 
如果把上面的代码改为
function A(){
this.name="A属性";
this.fangfa=function(){
alert("A方法");
}
}
 
function B(){
this.name="B属性";
this.fangfa=function(){
alert("B方法");
}
}
B.prototype=new A();
var test=new B(); 
alert(test.name);
test.fangfa(); 
//这个例子会弹出B的属性和B的方法,因为实例化B的对象,所以先从B的属性和方法查看

其实就是这么简单。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注