JavaScript使用prototype的用法
Javascript的物件分為一般物件和function物件,使用function物件時,需要使用關鍵字new初始化才能使用。定義function物件時,如果你希望能自訂一些方法讓所有初始化後的物件都能使用,這時就要用prototype了。
如果有一個function A,我們定義function A有一個method a,然後在利用prototype定義一個method b。
如果有一個function A,我們定義function A有一個method a,然後在利用prototype定義一個method b。
function A() { // ... } A.a = function(){ return "a"; }; A.prototype.b = function(){ return "b"; };定義完後,我們執行method a和b,會發現method b會是undefined
A.a(); // return "a" A.b(); // undefined而我們把function A初始化後呼叫method b就正確,所以利用prototype定義的method b必須在初始化後才能使用。
A.a(); // return "a" (new A).b(); // return "b"這是因為function物件的constructor的作用是將物件的prototype設定給新初始化的物件。而以下兩種作法效果會是一樣,而作法2是利用this指向function物件的用有者。
function A() { // ... } A.prototype.a = function(){}; function A() { this.a = function(){}; }
留言