簡體   English   中英

如何將此IIFE重寫為ES6類?

[英]How to rewrite this IIFE into an ES6 class?

因此,我有了這個IIFE,並且為了與我為插件重寫的其他ES6類保持一致,我也想將其重寫為使用ES6類語法。 誰能告訴我該怎么做?

Foo = (function(){
    Foo.bar = function(a, b){
        baz = new this(a, b);

        return baz;
    }

    function Foo(a, b){
        this.a = a;
        this.b = b;
    }

    return Foo;

})();

這很簡單

class Foo {
    constructor(a, b) {
        this.a = a;
        this.b = b;
    }
    static bar(a, b) {
        return new this(a, b);
    }
}

IIFE創建的函數也可以使用簡單的函數聲明和屬性分配來創建:

 function Foo(a, b) { this.a = a; this.b = b; } Foo.bar = function(a, b) { baz = new this(a, b); return baz; } var foo = new Foo('FooA', 'FooB'); console.log(foo.a + ':' + foo.b); var baz = Foo.bar('BazA', 'BazB'); console.log(baz.a + ':' + baz.b); 

使用語法

 class Foo { constructor(a, b) { this.a = a; this.b = b; } static bar(a, b){ baz = new this(a, b); return baz; } } var foo = new Foo('FooA','FooB'); console.log(foo.a + ':' + foo.b); var baz = Foo.bar('BazA', 'BazB'); console.log(baz.a + ':' + baz.b); 

不幸的是,由於我當前所在的站點具有無法識別語法的SOE版本的Firefox和IE,因此我實際上無法運行此代碼。 因此,如果有問題,請進行更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM