js-工厂模式

放假总结一把知识点,防遗忘。

比较简单,直接开始:

demo版

class Product {
    constructor(name) {
        this.name = name
    }
    fun1() {
        alert("func1")
    }
}
class Creator {
    create(name) {
        return new Product()
    }
}
let creator = new Creator()
let p1 = creator.create("p1")
p1.fun1()复制代码

jquery版

class jQuery{
    constructor(selector){
        let slice = Array.prototypo.slice
        let dom = slice.call(documen.querySelectorAll(selector))
        let len = dom ? dom.length : 0
        for (let i=0;i<len;i++){
            this[i]=dom[i]
        }
        this.length = len
        this.selector = selector || ''
    }
    append(node){
        ...
    }
    html(data){
        ...
    }
    ...
}
window.$ = function(selector){
    return new jQuery(selector)  //工厂模式
}复制代码

React版

var profile = React.createElement("div",null,
    React.createElement("img",{src: "avatar.png",className:"profile"}),
    React.createElement("h3",null,[user.firstName,user.lastName].join(" "))
);

...内部代码
React.createElement = function(tag,attrs,children){
    return new Vnode(tag,attrs,children)  //工厂模式
}
复制代码

Vue版

Vue.component('example-node',function(resolve,reject){
    setTimeout(function(){
        resolve({
            template: '<div>I am async!</div>'   //工厂模式,返回compoennt
        })    
    },1000)
})

复制代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值