JavaScript原型链与继承操作实例总结

  

本文实例讲述了JavaScript原型链与继承操作。分享给大家供大家参考,具体如下:

  

1。JavaScript继承

  

JavaScript继承可以说是发生在对象与对象之间,而原型链则是实现继承的主要方法;

  

1.1原型链

  

利用原型让一引用类型继承另一个引用类型的属性和方法。

  

构造函数中有个原型(每个函数中都有),指向他的原型对象,每个原型对象中也有一个构造函数属性,指向原构造函数。通过构造函数创建的新对象中都有一个无法直接访问的[[原型]]属性,使得对象也指向构造函数的原型。这使得对象也获得了原型中的方法和属性。

  

 JavaScript原型链与继承操作实例总结

  

当访问对象中的属性或方法时,如果对象中没有该属性或方法,则会向上一级原型对象中寻找该属性或方法,如果找了,就返回该属性,若没有则继续向上面的原型中去查找该属性。

  

1.2构造函数的原型链继承

        函数的父亲(姓名、年龄){   this.name=名称;   this.age=年龄;   }   Father.prototype.eat=function(){//给原型添加吃的方法   console.log (this.name +“吃饭了”);   }   var f1=new父亲(“李四”,20);//创建新对象f1,[[原型]]指向父原型   函数的儿子(){   }   Son.prototype=f1;//将子构造函数的原型指向了父类型的对象,这里实现了——继承   儿子var s1=new ();//创建子对象   s1.eat ();//李四吃饭了      之前      

运行结果:

  

 JavaScript原型链与继承操作实例总结

  

<强>注意:

  

①:当<代码> Son.prototype>   ②

: <代码> s1.eat();代码>   

③:通过原型链实现了继承。

  

简写:         var f1=新爸爸;   var Son.prototype=f1//可以直接简写成:   var的儿子。父亲prototypr=new ();//这个时候可以传值进去,其余地方无法传值      之前      

 JavaScript原型链与继承操作实例总结

  

1.3默认顶端原型

  

默认的顶端原型:

  

是当所有类型都没有指明继承某个类型时,则默认继承对象类型。

  

objec中也有指向他的对象原型,对象中也有<代码>[[原型]]>   

对象的很多方法,都是存在对象的原型中,

  

在原型链中查找,从当前位置一直往上访问,直到原型链顶端位置。

  

1.4测试数据

  

typeof测数据的类型,最好只来测试基本类型数据,应为除了基本类型外全是返回对象。

        控制台。日志(123类)//号码   控制台。日志(typeof ccsa)//字符串      之前      

instnaceof测试一个对象属不属于其父类对象的类型

        函数的父亲(名字){   }   var f1=new父亲();   控制台。日志(f1 instanceof父亲);//正确的      之前      

运行结果:

  

 JavaScript原型链与继承操作实例总结

  

<代码> isPrototypeOf(要测的对象)专属于原型对象的方法,判断该对象在不在该原型链上,使用:<代码>父类构造函数.prototype.isPrototypeOf(对象)

        函数的父亲(){   }   函数的儿子(){   }   的儿子。原型=新爸爸;   儿子var s1=new ();   console.log (Father.prototype.isPrototypeOf (s1));//正确的   console.log (Object.prototype.isPrototypeOf (s1));//正确的      之前      

1.5借调

  

借调:借用构造函数调用冒充继承,借调实现的继承,不是真正的继承,只是借用构造函数中的属性或方法。

  

申请,电话。

        函数Fn(姓名、年龄){   this.name=名称;   this.age=20;   }   函数的儿子(姓名、年龄、性别){   Fn.call(姓名,年龄)//借调继承Fn;   this.sex=性;   };   var s1=new儿子(“李四”,20日,“男”);   console.log (s1);      

JavaScript原型链与继承操作实例总结