私はこのIIFEを持っています。他のES6クラスとの一貫性のために、私はプラグインのために書き直しました。また、これをES6クラス構文を使用して書き直したいと思います。誰も私にそれを行う方法を示すことができますか?このIIFEをES6クラスに書き換える方法は?
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);
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);
:
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;
})();
だろう。 – Barmar
IIFEは、単一のパブリックメンバーを持つ関数を返します。 IIFEのメリットはありません。問題なく、単純な関数宣言とプロパティの割り当てに変換できます。 javascript(ECMAScript)にクラスはありません。コンストラクタになることができる関数があります。 – RobG
関連するすべての関数とオブジェクトを定義するためのES6構文である 'class'宣言があります:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes – Barmar