一、用途
用于創(chuàng)建復(fù)雜的對(duì)象爵川,只需要獲得對(duì)象敷鸦,并不需要知道對(duì)象創(chuàng)造的過(guò)程。
二寝贡、思想
將對(duì)象的創(chuàng)造和實(shí)現(xiàn)分離扒披。
三、優(yōu)點(diǎn)
- 更好的代碼封裝圃泡,為使用者提供便捷碟案,不需要理解實(shí)現(xiàn)的過(guò)程。
- 擴(kuò)延展性強(qiáng)颇蜡。
四价说、缺點(diǎn)
更加抽象辆亏,具有更高的代碼復(fù)雜度。
五熔任、示例
function getInfo(name){
const obj = {
"小明":new GetXiaoMing(),
"小剛":new GetXiaoGang(),
}
if(obj[name]){
return obj[name];
}else{
return "不存在此人"
}
}
function GetXiaoMing(){//構(gòu)造函數(shù)
this.name = "小明";
GetXiaoMing.prototype.getInfo = function(){
return {
age:10,
school:"陽(yáng)光小學(xué)",
}
}
}
class GetXiaoGang {//class類
constructor(){
this.name = "小剛";
}
getInfo(){
return {
age:11,
school:"實(shí)驗(yàn)小學(xué)",
}
}
}
let student1 = getInfo("小明");
let student2 = getInfo("小剛");
console.log(student1.getInfo());//小明 -> 10歲 在陽(yáng)光小學(xué)
console.log(student2.getInfo());//小剛 -> 11歲 在實(shí)驗(yàn)小學(xué)