ルールの例外は、あまりにも、ここでは、常にあります。あなたがnullまたは未定義の着信コールを入れた場合は、適用またはバインドこのアプリケーションの結合標的としてのルールをデフォルトのバインディングであります
関数FOO(){ にconsole.log(この.A)。 } VARの A = 2 。 foo.call(NULL)。// 2
それは何をnullを渡すでしょうか?
関数FOO(A、B){ にconsole.log( "A:" + + A "B" + B); } // 配列パラメータに"展開" foo.apply(ヌル、[2,3 ]) ; // (プレセットパラメータ)カリー化のためにバインド()を使用 するvarバー= foo.bind(NULL、2 ); (バー 3)。
関数は、この気にしないならば、あなたはまだプレースホルダ値を渡す必要があり、nullが、それは良い選択です食べる1は、この機能を使用しない場合は、デフォルトのルールがこれにグローバルオブジェクトにバインドされ、それは意志こうしたグローバルオブジェクトの変更など予測不可能な結果につながります。
関数FOO(A、B){ にconsole.log( "A:" + + A "B" + B)であり; } // 我々 DMZオブジェクト VAR = O Object.create(ヌル); // 配列" 「Aパラメータ展開 foo.apply(O、[2,3 ]); // (プレセットパラメータ)カリー化のためにバインド()を使用 するvarバー= foo.bind(O、2 )、 バー( 3)。
Oは言ったので、機能はより「安全」となって、だけでなく、コードの可読性を向上させることができますだけでなく、変数名を使用して、より良いヌルの意味よりもある、「私はこれが空である願っています」