通过工厂Creator生成实例,避免构造函数名的更改造成影响,隔离开构造函数,统一创建实例的入口;
使用场景:
1.
Array.prototype.slice.call(document.querySelectorAll('a'), 0)的作用就是将一个DOM NodeList 转换成一个数组。
class jQuery{
constructor(selector){
const slice=Array.prototype.slice;
const dom=slice.call(document.querySelectorAll(selector));
console.log(dom);
let len=dom?dom.length:0;
for(let i=0;i<len;i++){
this[i]=dom[i];
};
this.length=len;
this.selector=selector||'';
}
html(data){
}
append(){
}
}
window.$=function(selector){
//这里就是工厂模式,模拟JQ选择器,封装真正的构造函数,提供统一接口
return new jQuery(selector);
}
console.log($('p'));