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

首頁(yè) > 編程 > JavaScript > 正文

JavaScript四種調(diào)用模式和this示例介紹

2019-11-20 21:19:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
JavaScript調(diào)用時(shí)除了聲明時(shí)定義的形參外,每個(gè)函數(shù)接受兩個(gè)附加參數(shù):this 和arguments,this在面向?qū)ο缶幊讨蟹浅V匾?,它取決于調(diào)用模式。

JavaScript有四種調(diào)用模式,方法調(diào)用模式,函數(shù)調(diào)用模式,構(gòu)造器調(diào)用模式和apply調(diào)用模式。這些模式在初始化關(guān)鍵參數(shù)this上存在差異。

方法調(diào)用模式:當(dāng)一個(gè)函數(shù)被保存為對(duì)象的一個(gè)屬性時(shí),我們稱(chēng)它為一個(gè)方法,當(dāng)一個(gè)方法被調(diào)用時(shí),this被綁定到該對(duì)象上。如果調(diào)用表達(dá)式包含一個(gè)屬性取表達(dá)式(即一個(gè).點(diǎn)表達(dá)式或[script]下標(biāo)表達(dá)式),那么它被當(dāng)做一個(gè)方法調(diào)用。
復(fù)制代碼 代碼如下:

var myObject = {
value: 0;
increment: function(inc){
this.value += typeof inc === 'number' ? inc : 1;
}
};

myObject.increment();
document.writeln(myObject.value);//1

myObject.increment(2);
document.writeln(myObject.value);//2

方法可以使用this去訪問(wèn)對(duì)象,所以它能從對(duì)象中取值或修改對(duì)象。this的綁定發(fā)生在調(diào)用的時(shí)候。這個(gè)超級(jí)遲綁定使得函數(shù)可以對(duì)this高度復(fù)用。通過(guò)this可以取得他們所屬的上下文方法稱(chēng)為公共方法。

函數(shù)調(diào)用模式:當(dāng)一個(gè)函數(shù)并非一個(gè)對(duì)象的屬性時(shí),那么它被當(dāng)做一個(gè)函數(shù)來(lái)調(diào)用 var sum = add(3, 4);//sum值為7
當(dāng)函數(shù)以此模式調(diào)用時(shí),this被綁定到全局對(duì)象。

構(gòu)造器調(diào)用模式:JavaScript是一門(mén)基于原型繼承的語(yǔ)言。這意味著可以直接從其他對(duì)象繼承屬性。該語(yǔ)言是無(wú)類(lèi)別的。
如果在函數(shù)前面帶上new來(lái)調(diào)用,那么將創(chuàng)建一個(gè)隱藏連接到該函數(shù)的prototype成員的新對(duì)象,同時(shí)this將會(huì)被綁定到那個(gè)新對(duì)象上。

Apply調(diào)用模式:因?yàn)镴avaScript是一門(mén)函數(shù)式的面向?qū)ο缶幊陶Z(yǔ)言,所以函數(shù)可以擁有方法。
apply方法讓哦我們構(gòu)建一個(gè)參數(shù)數(shù)組并用其去調(diào)用函數(shù)。它也允許我們選擇this的值。
apply方法接受兩個(gè)參數(shù),第一個(gè)將被綁定給this的值,第二個(gè)就是一個(gè)參數(shù)數(shù)組。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲阳县| 孟村| 巢湖市| 富裕县| 五华县| 安远县| 龙川县| 民丰县| 沧州市| 毕节市| 乌兰浩特市| 遂宁市| 鸡泽县| 庆城县| 怀仁县| 介休市| 左权县| 体育| 湟中县| 甘谷县| 钟祥市| 邯郸市| 广东省| 沙河市| 新巴尔虎左旗| 承德县| 肇东市| 衡南县| 鹤峰县| 望城县| 卢氏县| 璧山县| 佛冈县| 红河县| 陕西省| 马鞍山市| 内丘县| 文水县| 龙岩市| 井研县| 赤峰市|