js函數(shù)封裝與調(diào)用方法
在編寫(xiě)JavaScript代碼時(shí),函數(shù)的封裝和調(diào)用是非常重要的一部分。本文將介紹幾種常見(jiàn)的函數(shù)調(diào)用模式。1. 方法調(diào)用模式方法調(diào)用模式是指先定義一個(gè)對(duì)象,然后在對(duì)象的屬性中定義方法,通過(guò)``來(lái)執(zhí)行方法
在編寫(xiě)JavaScript代碼時(shí),函數(shù)的封裝和調(diào)用是非常重要的一部分。本文將介紹幾種常見(jiàn)的函數(shù)調(diào)用模式。
1. 方法調(diào)用模式
方法調(diào)用模式是指先定義一個(gè)對(duì)象,然后在對(duì)象的屬性中定義方法,通過(guò)``來(lái)執(zhí)行方法,其中`this`關(guān)鍵字指向當(dāng)前的`myobject`對(duì)象。
```
var blogInfo {
blogId: 123,
blogName: "werwr",
showBlog: function() {
alert();
}
};
();
```
2. 函數(shù)調(diào)用模式
函數(shù)調(diào)用模式是指直接定義一個(gè)函數(shù),然后使用一個(gè)變量名保存該函數(shù),此時(shí)`this`關(guān)鍵字指向全局的`window`對(duì)象。
```
var myfunc function(a, b) {
return a b;
}
alert(myfunc(3, 4));
```
3. 構(gòu)造器調(diào)用模式
構(gòu)造器調(diào)用模式是指定義一個(gè)函數(shù)對(duì)象,在對(duì)象中定義屬性,并在其原型對(duì)象中定義方法。在使用原型方法時(shí),必須實(shí)例化該對(duì)象才能調(diào)用其方法。
```
var myfunc function(a) {
this.a a;
};
{
show: function() {
alert(this.a);
}
};
var newfunc new myfunc(123123123);
();
```
4. 對(duì)象屬性的封裝(公有和私有)
對(duì)象屬性的封裝可以實(shí)現(xiàn)公有屬性和私有屬性的定義。私有屬性在對(duì)象外部無(wú)法訪問(wèn),可以通過(guò)內(nèi)部的getter和setter進(jìn)行模擬。
```javascript
function List() {
var m_elements []; // 私有成員,在對(duì)象外無(wú)法訪問(wèn)
m_elements (m_elements, arguments); // 模擬getter
this.length function() {
return m_elements.length;
};
}
```
5. 屬性和方法的類型
在JavaScript中,對(duì)象的屬性和方法支持四種不同的類型:私有屬性、動(dòng)態(tài)公有屬性、靜態(tài)公有屬性/原型屬性和靜態(tài)屬性/類屬性。
- 私有屬性對(duì)外界完全不可訪問(wèn),可以通過(guò)內(nèi)部的getter和setter進(jìn)行模擬。
- 動(dòng)態(tài)公有屬性外界可以訪問(wèn),每個(gè)對(duì)象實(shí)例持有一個(gè)副本,不會(huì)相互影響。
- 原型屬性每個(gè)對(duì)象實(shí)例共享唯一副本。
- 類屬性不作為實(shí)例的屬性,只作為類的屬性。