zoukankan      html  css  js  c++  java
  • 探讨原型链

      先简单重申两个容易混淆的概念:即原型对象和prototype对象的区别。二者虽然名字非常相近,但表示的是两个截然不同的对象。

    1)原型对象:每一个对象都有它的原型对象,可以通过__proto__这个内部属性(原型链得以起作用的关键)来访问。指向的是创建该对象的构造函数的prototype对象。

    2)prototype对象:只有函数才有的对象。可通过构造函数访问(constructor.prototype)

      javascript是一门可以通过原型来继承的语言,这是javascript的优点之一。通过原型,可以高度的共享代码,减少代码的冗余。因为所有继承该类的对象共有这个原型,而不是每个对象都保存一份。

         而实现原型继承也很简单,只需将一个类的prototype指向该对象。如:

        

    var Person={
                        say:function(){},
                        work:function(){}
                    };
    
    
    function clone(o){
        var F=function(){};
        F.prototype=o;
        return new F;  
    }
    
    var Author=clone(Person); 
         Author.book='';//新增属性
    var author=clone(Author)//创建Author类的对象           

     

      

  • 相关阅读:
    LeetCode124 二叉树中的最大路径和
    LeetCode100 相同的树
    LeetCode206 反转链表
    LeetCode460 LFU缓存
    LeetCode876 链表的中间结点
    hdu2767 强连通分量
    hdu1827 强连通分量
    模板 tarjan算法
    hdu2227 树状数组优化dp
    割点和桥
  • 原文地址:https://www.cnblogs.com/chengzhenping/p/2685210.html
Copyright © 2011-2022 走看看