あなたはJSシリーズ(24)を知らない - これを無視します

ルールの例外は、あまりにも、ここでは、常にあります。あなたが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は言ったので、機能はより「安全」となって、だけでなく、コードの可読性を向上させることができますだけでなく、変数名を使用して、より良いヌルの意味よりもある、「私はこれが空である願っています」

 

おすすめ

転載: www.cnblogs.com/wzndkj/p/12446591.html