= 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はなく、ウィンドウの定義を参照します!
タイマー機能、デフォルトのホストオブジェクトが存在しないので、これはデフォルトのウィンドウを指し、
矢印を使用しますが、機能を向上させることができます