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(){ } };