本篇文章 主要接上篇文章 js原型模式
function
fn()
}//擴充套件公有屬性
fn.prototype = ,
gety: function()
}var f = new fn;
f.getx();//100
f.__proto__.getx();//undefined
//在原型模式中 this常用的有兩種情況:
//在類中 this.*** = ***; this ---> 當前類的例項
//在某乙個方法中 this --->看執行的時候 "."前面是誰 this就是誰
1)需要先確定this指向 ---> this是誰
2)把this替換成對應的**
3)按照原型鏈查詢的機制,一步步查詢結果
f.__proto__.getx();//this 是f.__proto__
console.log(f.__proto__.x);//直接忽略了查詢私有的 在公有中查詢發現沒有x --->輸出undefined
fn.prototype.getx();// --->undefined
console.log(fn.prototype.x) //--->undefined
f.gety()
console.log(f.y) // ----> 200
f.__proto__.gety()
console.log(f.__proto__.y) // ---->輸出300
複製**
array.prototype.myunique = function() ;
for(var i = 0; i < this.length; i++)
//如果不重複 先把值放到物件中
obj[cur] = cur;
}obj = null;
return
this;//目的是為了實現鏈式寫法
}複製**
var ary = ;
ary.sort(function(a,b) ).reverse().pop();
複製**
function
fn()
fn.prototype.getx = function()
var f1 = new fn;
複製**
function
fn()
var pro = fn.prototype;
pro.getx = function()
pro.gety = function()
pro.getz = function()
var f1 = new fn;
//把原來原型指向的位址賦值給我們的pro 現在它們操作的是同乙個記憶體空間
複製**
function
fn()
fn.prototype = ,
b: function()
}//{} -->開闢了乙個新的堆記憶體
//js中遇到{} 先開闢堆記憶體 然後存屬性名和屬性值
//自己新開闢乙個堆記憶體,儲存我們公有的屬性和方法,把瀏覽器原來給fn.prototype開闢的那個給替換掉
fn.prototype = //為什麼要增加這一行
1)只有瀏覽器天生給fn.prototype開闢的堆記憶體裡邊才有constructor,而我們自己開闢的這個堆記憶體沒有這個屬性,這樣construcor指向的就不在是fn,而是object了 -->參考示意圖
沒做任何處理之前 輸出object
//為了和原來的保持一致,我們需要手動地增加constructor的指向
2)給內建類增加公有的屬性
如給內建類增加陣列去重的方法
array.prototype =
}//理論上這種方式擴充套件內建類 內建類的原型指向類一塊新記憶體 會把之前已經存在的原型上的屬性和方法給替換掉
//但是用這種方式修改內建類 瀏覽器是給遮蔽掉的(所以不能用來修改內建類)
//不過我們可以乙個個的修改內建類的方法,當我們通過下述方法在陣列的原型上增加方法,如果方法名和原來內建的重複了,會把內建的修改掉
//所以在內建類的原型上增加方法,命名都需要加特殊的字首 避免出現錯誤
array.prototype.sort = function()
複製**
js建立物件 原型模式
原型模式是用來建立物件的,它是在建構函式建立物件基礎上,為了實現資料的共享,這種共享包括屬性的共享,也包括方法的共享。既然原型模式是在建構函式模式的基礎上改進的,那麼這種模式會既有建構函式的特點又有原型模式的特點。關於原型模式的使用方法用一句話總結 不需要共享的資料寫在建構函式中,需要共享的資料寫在...
原型模式與原型鏈(js學習)
物件的原型 prototype 指向另乙個物件,本物件的屬性繼承於他的原型物件。原型物件 原型模式 我們建立的每乙個函式都有乙個prototype 原型 屬性,這個屬性是乙個指標,指向乙個物件。這個物件就是通過呼叫建構函式而建立的那個物件例項的原型物件。使用原型物件,就不必在建構函式中定義物件例項的...
建立型模式 原型模式
使用原型例項指定建立物件的種類,並且通過轉殖這些原型建立新的物件 原理是將乙個原型物件傳給要發動建立的物件,該物件通過請求原型物件轉殖自己來建立過程 轉殖方法 public prototype clone jdk中為我們提供了轉殖的方法clone 從object繼承下來,乙個物件要實現轉殖,需要實現...