JavaScript で関数を定義するにはさまざまな方法があり、関数リテラルもその 1 つです。たとえば、var fun = function(){} の場合、function が fun に割り当てられていない場合、それは匿名関数になります。さて、匿名関数がどのように呼び出されるかを見てみましょう。
方法 1、関数を呼び出して戻り値を取得します。強制演算子により、関数呼び出しが
で実行されます。(function(x,y){ alert(x+y); return x+y; }(3,4));
方法 2、関数を呼び出して戻り値を取得します。関数を強制的に直接実行してから参照を返し、その参照が呼び出されて実行されます
(function(x,y){ alert(x+y); return x+y; })(3,4);
このメソッドは、jQuery や Mootools などの多くのライブラリで使用されるよく使われる呼び出しメソッドでもあります。
方法 3、void を使用します
void function(x) { x = x-1; alert(x); }(9);
方法 4、-/+ 演算子を使用する
-function(x,y){ alert(x+y); return x+y; }(3,4); +function(x,y){ alert(x+y); return x+y; }(3,4); --function(x,y){ alert(x+y); return x+y; }(3,4); ++function(x,y){ alert(x+y); return x+y; }(3,4);
方法 5、チルダ (~) を使用します
~function(x, y) { alert(x+y); return x+y; }(3, 4);
方法 6、匿名関数の実行は角かっこ内に配置されます
[function(){ console.log(this) // 浏览器得控制台输出window }(this)]
方法 7、匿名関数の前に typeof
を追加しますtypeof function(){ console.log(this) // 浏览器得控制台输出window }(this)
方法 8、匿名関数の前に delete
を追加しますdelete function(){ console.log(this) // 浏览器得控制台输出window }(this)
方法 9、匿名関数の前に void
を追加しますvoid function(){ console.log(this) // 浏览器得控制台输出window }(this)
メソッド 10、新しいメソッドを使用してパラメータを渡します
new function(win){ console.log(win) // window }(this)
メソッド 11、new を使用、パラメータは渡さない
new function(){ console.log(this) // 这里的this就不是window了 }
メソッド 12、カンマ演算子
function(){ console.log(this) // window }();
モード 13、ビットごとの XOR 演算子
^function(){ console.log(this) // window }();
メソッド 14、比較演算子
function(){ console.log(this) // window }();
最後に、間違った呼び出しメソッドを見てみましょう
function(x,y){ alert(x+y); return x+y; }(3,4);
匿名関数を記述する N 通りの方法は次のとおりです
匿名関数には実際の名前もポインタもありません。どうすれば実行できますか?
匿名関数の書き方については、かなり多岐にわたります〜
+ 記号は、関数宣言を関数式に変換します。要約してください
最も一般的な使用法:
コードは次のとおりです:
(function() { alert('water'); })();
もちろん、パラメーターを受け取ることもできます:
コードは次のとおりです:
(function(o) { alert(o); })('water');
匿名関数のチェーン呼び出しを使用したいですか?とてもシンプルです:
コードは次のとおりです:
(function(o) { console.log(o); return arguments.callee; })('water')('down');
一般的な匿名関数は誰もが知っていますが、珍しい関数を見てみましょう:
コードは次のとおりです:
~(function(){ alert('water'); })();//写法有点酷~
コードは次のとおりです:
void function(){ alert('water'); }();//据说效率最高~
コードは次のとおりです:
+function(){ alert('water'); }();
コードは次のとおりです:
-function(){ alert('water'); }();
コードは次のとおりです:
~function(){ alert('water'); }();
コードは次のとおりです:
!function(){ alert('water'); }();
コードは次のとおりです:
(function(){ alert('water'); }());//有点强制执行的味道~
上記では、JavaScript で匿名関数を呼び出して記述する方法を説明しました。お役に立てば幸いです。