本文共 1813 字,大约阅读时间需要 6 分钟。
将 new 操作单独封装
面向对象创建实例
的过程中class Product { constructor(name) { this.name = name } init() { alert('init') } fun1() { alert('fun1') } fun2() { alert('fun2') }}class Creator { create(name) { return new Product(name) }}// 测试let creator = new Creator()let p = creator.create('p1')p.init()p.fun1()
jQuery 中的 $('div')
React.createElement
var profile =;// jsx 编译后var profile = React.createElement("div", null, React.createElement("img", { src: "avatar.png", className: "profile" }), React.createElement("h3", null, [user.firstName, user.lastName].join(" ")));// 源码class Vnode(tag, attrs, chilren) { // ... 省略内部代码 ...}React.createElement = function (tag, attrs, children) { return new Vnode(tag, attrs, chilren)}{ [user.firstName, user.lastName].join(' ')}
vue 异步组件
Vue.component('async-example', function (resolve, reject) { setTimeout(function () { resolve({ template: 'I am async!' }) }, 1000)})
构造函数和创建者分离
符合开放封闭原则
转载地址:http://ocqwi.baihongyu.com/