• 技术文章 >web前端 >js教程

    JavaScript 原型继承_js面向对象

    2016-05-16 17:57:59原创474
    Object.prototype
    JavaScript是基于原型继承的,任何对象都有一个prototype属性。Object.prototype是所有对象的根,并且不可改变。
    复制代码 代码如下:

    Object.prototype=null;
    alert(Object.prototype);//[object Object]

    Object与Object.prototype
    Object继承于Object.prototype,增加一个属性给Object.prototype上,同时也会反应到Object上。如:
    复制代码 代码如下:

    Object.prototype.nameStr="Object Prototype";
    Object.prototype.getName=function(){return this.nameStr};
    alert(Object.getName());//Object Prototype

    Function.prototype与Object.prototype
    由于Object.prototype是万物之根,所以Function.prototype也同时会继承Object.prototype的所有属性。如:
    复制代码 代码如下:

    Object.prototype.nameStr="Object Prototype";
    Object.prototype.getName=function(){return this.nameStr};
    alert(Function.prototype.getName());//Object Prototype


    Object/Function/String/Number/Boolean/Array与Date
    Object/Function/String/Number/Boolean/Array与Date都是函数,函数又继承于Function.prototype, 所以更改Function.prototype一样会影响到Object/Function/String/Number/Boolean/Array与Date。如:
    复制代码 代码如下:

    Function.prototype.initType='Function Type';
    Function.prototype.getType=function(){return this.initType};
    //alert(Object.getType());//Function Type
    //alert(Date.getType());//Function Type
    //alert(Number.getType());//Function Type
    //alert(String.getType());//Function Type
    //alert(Boolean.getType());//Function Type
    alert(Array.getType());//Function Type

    同样Function.prototype也会把所受Object.prototype的影响,传递给它的下一层级。如:
    复制代码 代码如下:

    Object.prototype.nameStr="Object Prototype";
    Object.prototype.getName=function(){return this.nameStr};
    alert(Function.prototype.getName());//Object Prototype
    alert(Array.getName());//Object Prototype

    复制代码 代码如下:

    alert(Boolean.prototype.getName());//Object Prototype

    Array/Array.prototype与Function.prototype/Object.prototype

    Array是函数对象,受Function.prototype的影响,而Array.prototype不是函数对象,所不受Function.prototype的影响,但所有对象受Object.prototype的影响,所以Array.prototype也会受Object.prototype的影响。如:
    复制代码 代码如下:

    Object.prototype.nameStr="Object Prototype";
    Object.prototype.getName=function(){return this.nameStr};
    //alert(Function.prototype.getName());//Object Prototype
    //alert(Boolean.prototype.getName());//Object Prototype
    Function.prototype.initFun=function(){
    return 'Function.prototype.initFun';
    }
    alert(Array.initFun());//Function.prototype.initFun
    var arr=['a','b'];
    alert(arr.getName());//Object Prototype
    alert(arr.initFun());//Error: arr.initFun is not a function
    alert(arr.initFun);//undefined
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:原型继承
    上一篇:jquery随机展示头像代码 下一篇:js字符编码函数区别分析_javascript技巧
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 一文搞定JavaScript字符串对象基本知识• JavaScript弱映射与弱集合知识详解• 一篇搞定JavaScript DOM详细操作• 深入聊聊JavaScript• JavaScript迭代器知识点总结
    1/1

    PHP中文网