この深さは、顔の質問3

= 1 window.val ;
  VAR OBJ = { 
   ヴァル: 2 
   DBL:関数(){
      この .val * = 2 ; 
     ヴァル * = 2 ; 
     にconsole.log(ヴァル)
     はconsole.log(この.val); 
   } 
 } ; 
 // 以下の出力伝える
obj.dblを();
  VARの FUNC = obj.dbl; 
 FUNC(); 
結果:   2488

valの変数オブジェクトの接頭辞が指定されていない、関数からのデフォルトの外観は、グローバル変数の窓から見たで見つけることができません

それヴァル* = 2はwindow.valです* = 2

this.valデフォルトはobj.val指す; DBL()が最初に直接OBJと呼ばれていたため

<2>ライン14回のコール

グローバル関数と同様、任意のプレフィックス、すなわちwindow.func呼び出し無しFUNC()、そう

2番目の呼び出し、これはウィンドウを参照する場合、valがwindow.valを指し、

影響を受けた最初の第2の結果

 

VAR OBJ = {
言う:機能(){
return関数(){
にconsole.log(本)
}
}
}
obj.say()(); // 窓

 

VAR OBJ = {
言う:機能(){
リターン()=> {
にconsole.log(本)
}
}
}
obj.say()(); // OBJ

ホストオブジェクトのデフォルト匿名関数が存在しないので、これはデフォルトのウィンドウの機能向上の矢印を指し、

<SCRIPT>
  varが OBJ = { 
   言う:機能(){ 
     のsetTimeout(() => { 
       にconsole.log(
     }); 
   } 
 } 
 obj.say(); // OBJ 
</ SCRIPT> 
この場合、これはから継承されていますOBJ、それはそのオブジェクトobjはなく、ウィンドウの定義を参照します!

タイマー機能、デフォルトのホストオブジェクトが存在しないので、これはデフォルトのウィンドウを指し、

矢印を使用しますが、機能を向上させることができます

おすすめ

転載: www.cnblogs.com/-constructor/p/11647023.html