1、この概要
これは、一つの内部オブジェクトが自動的に生成され、関数が実行を表すキーJavaScript言語、ある機能のみ内部で使用することができ、別の機会の利用に応じて、この値が変更され、不確実であるとポイントそれは、動的にこの点を変更することができますが、常にこの関数が呼び出され、そのオブジェクトを指していることを一般的な原則があります。(この時点で、所有者は、一般的関数です)
図2に示すように、この厳密なモードの「使用厳密」値が定義されていません
機能テスト(){
「厳格な使用」; //厳格なモード
console.log(この)//未定義
}
テスト()
3、配列
関数f1(){
(この)はconsole.log
}
ARR =た[f1,2,3]。
ARR [0]()//この点ARR
ここで、f 2 = ARR [0]。
F2(); //この時点窓
4、組み込み関数のsetTimeout(これはタイマウィンドウを指します)
関数f1(){
(この)はconsole.log
}
setTimeout(f1,1000)//この時点窓
図5に示すように、コールバック関数は、また、このウィンドウを対象とします
図6に示すように、物体
VAR OBJ = {};
obj.name = 123。
obj.action =関数(){にconsole.log(本)}
関数f1(){にconsole.log(本)}
obj.action()//この指向OBJ
obj.f2 = F1;
obj.f2()//この時点OBJ
7、このコンストラクタ
コンストラクタ関数はインスタンスによって生成され、関数は(新しいキーワードで)コンストラクタとして使用されている場合は、新しいキーワードを使用しない場合、それは、新しく作成されたオブジェクトのはこの点だ、それは正常な機能です、この時点窓
図8に示すように、このウィンドウ関数の実装が行われるので
VAR数= 1。
VAR OBJ = {
2番、
アクション:関数(){
this.number = 5;
(関数( ){
console.log(this.number)// 1
})()
console.log(this.number)// 5
}
}
obj.action()
概要:呼び出し元の関数にこの点を、呼び出し側の尖った窓なし