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