この構文は、シンプルで、素晴らしく、素晴らしく、強力なライブラリのknockoutjsで見つけました。
!function(factory) { ... }
宣言!
の前の否定記号 ( ) の意味は何ですか?function
更新: ソース コードには、この正確な構文が含まれなくなりました。
この構文は、シンプルで、素晴らしく、素晴らしく、強力なライブラリのknockoutjsで見つけました。
!function(factory) { ... }
宣言!
の前の否定記号 ( ) の意味は何ですか?function
更新: ソース コードには、この正確な構文が含まれなくなりました。
!
演算子は通常どおり動作し、式を否定します。この場合、関数を関数ステートメントではなく関数式にするために使用されます。演算子は式に適用する必要があるため!
(ステートメントには値がないため、ステートメントに適用しても意味がありません)、関数は式として解釈されます。
このように、すぐに実行できます。
function(){
alert("foo");
}(); // error since this function is a statement,
// it doesn't return a function to execute
!function(){
alert("foo");
}(); // This works, because we are executing the result of the expression
// We then negate the result. It is equivalent to:
!(function(){
alert("foo");
}());
// A more popular way to achieve the same result is:
(function(){
alert("foo");
})();