首頁 > web前端 > js教程 > 主體

javascript使用與不使用prototype區別程式碼實例詳解

伊谢尔伦
發布: 2017-07-27 13:34:19
原創
1222 人瀏覽過

沒有使用prototype的方法相當於類別的靜態方法,相反,使用prototype的方法相當於類別的實例方法,不准new後才能使用

function ListCommon2(first,second,third) 
{ 
this.First=function () 
{ 
alert("first do"+first); 
} 
} 
ListCommon2.do1=function(first) 
{ 
// this.First(); 
alert("first do"+first); 
} 
ListCommon2.prototype.do2=function(first) 
{ 
// this.First(); 
alert("first do"+first); 
}
登入後複製

兩種方法到底有什麼差別呢?用不用prototype有什麼作用呢?

測試程式碼: 

var t1=new ListCommon2("烧水1","泡茶1","喝1"); 
// t1.do1();//调用出错 
ListCommon2.do1("烧水1"); 
var t2=new ListCommon2("烧水2","泡茶2","喝2"); 
t2.do2("烧水2");// 
// ListCommon2.do2("烧水1");//调用出错
登入後複製


經過測試發現,沒有使用prototype的方法相當於類別的靜態方法,因此可以這樣調用,ListCommon2.do1("燒水1") ;,如果這樣呼叫就會出錯,t1.do1();

相反,使用prototype的方法相當於類別的實例方法,不准new後才能使用,ListCommon2.do2("燒水1") ;這樣就會出錯

結論,使用prototype定義的方法相當於類別的實例方法,必須new後才能使用,函數中可以呼叫函數的限制也會類別的實例方法的限制有些類似

使用不使用prototype定義的方法相當於類別的靜態方法,可以直接使用,不需要new,,函數中可以呼叫函數的限制也會類別的靜態方法法的限制有些類似

#例如不能呼叫this.First();

以上是javascript使用與不使用prototype區別程式碼實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!