これはばかげた質問かもしれませんが、私は至る所を見て、最後の手段としてSOに来ました。 私の疑問は、IIFE関数が通常このように見えることです
var me = (function() { /*code*/} )();
me();
これまでに変数が渡されるコードを見たことはありません。 IIFE関数に値を渡すことは可能ですか?私はすでに使用してみました
var Person = (function(name,age){
this.name = name;
this.age = age;
}());
Person("Bob Smith", 30);
未定義のエラーが発生します。
これらの値をIIFEに渡す方法はありますか、それを避ける必要がありますか?
回答:
回答№1は1これは、パラメーターを持つIIFEになります。
(function (a, b) {
alert(a + b);
}("hello", " world"));
他の人が言ったように、あなたがしているように見えるのはコンストラクタです。
必要に応じて、この方法でコンストラクタを実行できます。
function Person(name, age) {
this.name = name;
this.age = age;
}
var bob = new Person("Bob Smith", 30);
匿名で呼び出されたコンストラクターを実行できますが、それは「それは使い捨ての取引であるため無意味です。」そのためのコンストラクターは必要ありません。