js類定義函數(shù)時用prototype與不用的區(qū)別示例介紹
更新時間:2014年06月10日 08:51:37 作者:
沒有使用prototype的方法相當于類的靜態(tài)方法,相反,使用prototype的方法相當于類的實例方法,不許new后才能使用
一直在使用js編寫自以為是面向對象的方法,遇到一個問題,就是定義一個方法,如下:
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);
}
兩種方法到底有什么區(qū)別呢?用不用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");//調用出錯
經過測試發(fā)現(xiàn),沒有使用prototype的方法相當于類的靜態(tài)方法,因此可以這樣調用,ListCommon2.do1("燒水1");,如果這樣調用就會出錯,t1.do1();
相反,使用prototype的方法相當于類的實例方法,不許new后才能使用,ListCommon2.do2("燒水1");這樣就會出錯
結論,使用 prototype定義的方法相當于類的實例方法,必須new后才能使用,函數(shù)中可以調用函數(shù)的限制也會類的實例方法的限制有些類似
使用 不使用prototype定義的方法相當于類的靜態(tài)方法,可以直接使用,不需要new,,函數(shù)中可以調用函數(shù)的限制也會類的靜態(tài)方法法的限制有些類似
例如不能調用this.First();
復制代碼 代碼如下:
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);
}
兩種方法到底有什么區(qū)別呢?用不用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");//調用出錯
經過測試發(fā)現(xiàn),沒有使用prototype的方法相當于類的靜態(tài)方法,因此可以這樣調用,ListCommon2.do1("燒水1");,如果這樣調用就會出錯,t1.do1();
相反,使用prototype的方法相當于類的實例方法,不許new后才能使用,ListCommon2.do2("燒水1");這樣就會出錯
結論,使用 prototype定義的方法相當于類的實例方法,必須new后才能使用,函數(shù)中可以調用函數(shù)的限制也會類的實例方法的限制有些類似
使用 不使用prototype定義的方法相當于類的靜態(tài)方法,可以直接使用,不需要new,,函數(shù)中可以調用函數(shù)的限制也會類的靜態(tài)方法法的限制有些類似
例如不能調用this.First();
您可能感興趣的文章:
- javascript中的prototype屬性使用說明(函數(shù)功能擴展)
- JS構造函數(shù)與原型prototype的區(qū)別介紹
- JavaScript下的時間格式處理函數(shù)Date.prototype.format
- js prototype截取字符串函數(shù)
- 基礎的prototype.js常用函數(shù)及其用法
- String.prototype實現(xiàn)的一些javascript函數(shù)介紹
- 淺談js構造函數(shù)的方法與原型prototype
- prototype.js常用函數(shù)詳解
- 基于prototype擴展的JavaScript常用函數(shù)庫
- JavaScript中isPrototypeOf函數(shù)作用和使用實例
- JS函數(shù)進階之prototy用法實例分析
相關文章
javascript實現(xiàn)點擊按鈕讓DIV層彈性移動的方法
這篇文章主要介紹了javascript實現(xiàn)點擊按鈕讓DIV層彈性移動的方法,實例分析了javascript操作div層的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02uniapp小程序配置tabbar底部導航欄實戰(zhàn)指南
tabBar如果應用是一個多tab應用,可以通過tabBar配置項指定tab欄的表現(xiàn),以及tab切換時顯示的對應頁,下面這篇文章主要給大家介紹了關于uniapp小程序配置tabbar底部導航欄的相關資料,需要的朋友可以參考下2022-09-09Js表格萬條數(shù)據(jù)瞬間加載實現(xiàn)代碼
一條數(shù)據(jù)創(chuàng)建一行,如果數(shù)量大的時候,一次性要加載完數(shù)據(jù)的話,瀏覽器就會卡上半天,下面有個不錯的方法,大家可以參考下2014-02-02JavaScript+Canvas實現(xiàn)彩色圖片轉換成黑白圖片的方法分析
這篇文章主要介紹了JavaScript+Canvas實現(xiàn)彩色圖片轉換成黑白圖片的方法,結合實例形式分析了javascript結合HTML5相關函數(shù)修改頁面圖片元素顯示效果相關操作技巧,需要的朋友可以參考下2018-07-07