不同写法处理同一个业务场景

写法1

/** 
* 对象方法,自执行函数,闭包
*/
const buildTask = (() => {
    var queue1 = [];
    return {
        push(item1) {
            queue1.push(item1);
            console.log(queue1);
        }
    }
})();
const res1 = buildTask.push(1);
console.log(res1);

写法2

/** 
* 自执行函数,闭包
*/
const buildTask2 = (() => {
    var queue2 = [];
    return (item2) => {
        queue2.push(item2);
        console.log(queue2);
    }
})();
const res2 = buildTask2(1);
console.log(res2);

写法3

** 
* 类,构造函数
*/
class TestTask {
    constructor() {
        this.queue3 = [];
    }
    
    buildTask3(item3) {
        return () => {
            this.queue3.push(item3);
            console.log(this.queue3);
        }
    }
}

const res3 = new TestTask;
console.log(res3.buildTask3(1)());

猜你喜欢

转载自www.cnblogs.com/camille666/p/some_mind.html