国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js類定義函數時用prototype與不用的區別示例介紹

2019-11-20 14:30:49
字體:
來源:轉載
供稿:網友
一直在使用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);
}

兩種方法到底有什么區別呢?用不用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();
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭阳县| 青冈县| 铜梁县| 麻江县| 新安县| 海原县| 义乌市| 津市市| 恩平市| 惠东县| 定安县| 崇信县| 武山县| 曲靖市| 墨竹工卡县| 芒康县| 娄底市| 苏尼特右旗| 榆树市| 剑川县| 桃源县| 安龙县| 赫章县| 镇赉县| 汪清县| 鄄城县| 太保市| 武义县| 霍邱县| 黑河市| 将乐县| 长岭县| 太白县| 卢氏县| 鄢陵县| 镇安县| 孟连| 广饶县| 比如县| 九江市| 从化市|