javascript代码实例教程-javascript原型和原型继承

发布时间:2019-02-13 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-javascript原型和原型继承脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 每一个javascript对象(null除外)都和原型对象相关联,每一个对象都从原型对象继承属性。

 

所有通过对象直接量创建的对象都具有同一个原型对象,并可以通过javascript代码Object.PRototyPE获得对原型对象的引用。通过关键字new和构造函数调用创建的对象的原型就是构造函数的prototype属性的值。因此,同使用{}创建对象一样,通过new Object()创建的对象也继承自Object.prototype。同样,通过new Array()创建的对象的原型就是Array.prototype,通过new Date()创建的对象的原型就是Date.prototype。

 

首先,我们来了解一下Object.create方法。

 

ECMAScript5定义了一个名为Object.create()的方法,它创建一个新对象,其中第一个参数是这个对象的原型,第二个参数用以对对象的属性进行进一步描述。使用它很简单,直接传入所需的原型对象即可。

 

例如:

 

VAR o1 = Object.create({a:1, b:2});  //o1继承了属性x和y

 

var o2 = {x:10, y:20};

 

var o3 = Object.create(o2);  //o3继承了o2

 

如果想创建一个普通的空对象(比如通过{}或者new Object()创建的对象),需要传入Object.prototype,例如:

 

var o4 = Object.create(Object.prototype);  //o4跟{}和new Object()一样

 

 

 

使用Object.create方法可以通过任意原型对象创建新对象,也即可以使任意对象可继承。因此,我们可以写一个原型继承函数,如下:

 

function inherIT(p){

 

  if(Object.create){

 

    return Object.create(p);

 

  }else{

 

    function f(){}

 

    f.prototype = p;

 

    return new f();

 

  }

 

}

 

 

 

接着,我们来看看javascript对象的继承。

 

javascript对象具有"自有属性",也有一些属性是从原型对象继承而来的。假设要查询对象o的属性x,如果o中不存在x,那么将会继续在o的原型对象中查询属性x。如果原型对象中也没有x,但这个原型也有原型,那么继续在这个原型对象的原型上执行查询,知道找到x或者查找到一个原型是null的对象为止。可以看到,对象的原型属性构成了一个"链",通过这个"链"可以实现属性的继承。

 

例如:

 

var o = {};  //o从Object.prototype继承对象的方法

 

o.x = 1;

 

var p = inherit(o);  //p继承o和Object.prototype

 

p.y = 2;

 

var q = inherit(p);  //q继承p、o和Object.Prototype

 

q.z = 3;

 

q.x + q.y  //3:x和y分别继承自o和p 

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-javascript原型和原型继承全部内容,希望文章能够帮你解决javascript代码实例教程-javascript原型和原型继承所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。