[英]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.