2017-03-08 8 views
1

は最近、私はこのようなものだったコードの一部に出くわした:javascriptのfunction(){}の意味は何ですか?

var noop = function(){}; 
    options.ondragover = options.ondragover || noop; 
    options.ondragleave = options.ondragleave || noop; 
    options.ondrop = options.ondrop || noop; 
    options.onfilesdone = options.onfilesdone || noop; 
+0

'options。*'関数のいずれかが存在しない場合は、単なるプレースホルダー関数です。 – Xufox

+3

noopは「操作なし」を意味します。それは空の関数です – Gab

+0

この場合、他のオプションはありません。 –

答えて

-3

それは単にあなたが宣言するものは何でも、あなたが同じことを実行することが可能な自己実行機能です。

スコープを制限し、非公開にしてグローバルオブジェクトから変数を非表示にします。

// Somewhere it is defined as global.. 
var x = 7; 
// Your piece of code 
var x = "roman" // Here, you override the value of x defined earlier. 
alert(x); // "roman"  
But when you use a closure which you have mentioned:  
var x = 7; 
// it doesn't affect/change the value of global x 
(function(){ var x = "roman";})(); 
alert(x); // 7 
+2

自己実行関数はこのようなものです( 'function(){...})();' –

+0

私はこの違いと一緒にこれを使う方法を説明しました。私が上で説明した答えに間違っていますか? – jatingoel1349

+0

あなたの答えに何か事実上間違っているとは思わない。それは、この質問に対する答えではないということだけです。 –

0

ではありませんあなたが投稿したコードは(名前NOOPと空の関数を宣言しました特定の条件が適用されたときに実行する代替手段として、たとえば コード:

options.ondragover = options.ondragover || noop;

チェックoptions.ondragoverが存在しない場合ならば変数に空の機能を割り当てます。

関連する問題