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(){}
               };
       //  二、用這種方式 給內置類增長 這麼好口愛公有的屬性
        //   給內置類Arrary 增長數組去重的方法
       //`````````````````````````````````````````````````

       //咱們這種方式會把以前已經存在於原型上的屬性和方法給替換掉,因此咱們中的
       //  這種方式修改內置類的話瀏覽器是給屏蔽掉的 不讓你用
        // 可是咱們能夠一個個的修改內置的方法,當咱們經過下述方式在數組的原型上增長方法
        // 若是方法名和原來的內置的重複,會把人家內置的修改掉-->咱們之後再內置類的原型上
        //增長方法,命名都須要加特殊的前綴 myUnique
           Array.prototype = {
           constructor:Array,
           unique:function(){
           }
       };
相關文章
相關標籤/搜索