關鍵詞:函數,封裝,
定義
把實現相同功能的代碼放在一個函數中,以后想實現這個功能,只需要執行這個方法就行了-->函數的封裝(低耦合,高內聚)。本質上就是普通函數的封裝。
使用方法
var a=function (name,age) {
var obj={};
obj.name=name;
obj.age=age;
obj.createJs=function () {
console.log(this.name+'和'+this.age)
}
return obj;
}
var result1=a('js',18);
var result2=a('jss',18);
result1.createJs();
result2.createJs();
工廠模式的意義:
低耦合,高內聚(減少頁面的冗余代碼,提高代碼的利用率)。
這里不得不提面向對象的特點:類的繼承,封裝,多態(重載與重寫)
關于重載和重寫:
重載的定義:函數名相同,函數的參數列表不同(包括參數個數和參數類型),至于返回類型可同可不同。
function a(m){console.log(m)};
function a(m,n){console.log(n+n)};
后臺語言中有兩個同名函數,傳遞一個參數時,會執行第一個函數,傳遞兩個參數時,會執行第二個函數。(這是我的理解,真正的后臺語言不是以這種形式書寫的),在JS中后面的同名函數會把前面覆蓋掉,所以不存在重載。只有類似于重載的功能,如下:
function m(params) {
if(!params){
return undefined;
}
return params;
}
重寫:
function Create(name,age) {
var name='xiaoming';
this.name=name;
this.age=age;
this.createJs=function () {
console.log(this.name+'是'+this.age)
}
}
Create.prototype.test=function () {
console.log(123);
}
var p1=new Create('js',19);
p1.__proto__.test=function () {
console.log(100)
}
p1.test();//100,子重寫了父的方法;