JavaScript基础知识十五(原型链批量设置公有属性)

  function Fn(){
           this.x = 100;
       }
     /*  1.把原来原型指向的地址赋值给我们的pro,现在它们
       操作的是同一个内存空间*/
       var pro = Fn.prototype;
       pro.getA =function(){};
       pro.getB =function(){};
       pro.getC =function(){};
       /*2.重构原型的方式—>自己新开辟一个堆内存,存储我们公有的、
         属性和方法,把浏览器原来给Fn.prototype开辟的那个替换掉*/
       Fn.prototype ={
       // 只有浏览器天生给Fn.prototype开辟的堆内存里面才有constructor,而我们
       //  自己开辟的这个堆内存没有这个属性,这样constructor指向就不在是Fn而是
       //  Object了
       //   f.constructor 没做任何处理之前 Object
       //   为了和原来的保持一致,我们需要手动的增加 constructor 的指向
               constructor:Fn,
               prototype:Fn,
               getX =function(){},
               getY =function(){},
               getZ =function(){}
               };
       //  2、用这种方式 给内置类增加 这么好口爱公有的属性
        //   给内置类Arrary 增加数组去重的方法
       //`````````````````````````````````````````````````

       //我们这种方式会把之前已经存在于原型上的属性和方法给替换掉,所以我们中的
       //  这种方式修改内置类的话浏览器是给屏蔽掉的 不让你用
        // 但是我们可以一个个的修改内置的方法,当我们通过下述方式在数组的原型上增加方法
        // 如果方法名和原来的内置的重复,会把人家内置的修改掉-->我们以后再内置类的原型上
        //增加方法,命名都需要加特殊的前缀 myUnique
           Array.prototype = {
           constructor:Array,
           unique:function(){
           }
       };

 

posted @ 2017-04-11 22:29  且听风吟V  阅读(560)  评论(0编辑  收藏  举报