この共通
- 単独で使用する場合、これはグローバルオブジェクトを表します。
- 機能では、これはグローバルオブジェクトを表します。
- 機能では、厳密モードでは、これは、(未定義)未定義です。
- この方法では、この方法は、オブジェクトが属していることを示しています。
- イベントでは、このイベントを受信する要素を表します。
- 同様のコール()、適用()、バインド()任意のオブジェクトであってもよい。この方法を指します。
var name = "我是window";
// 单独使用
console.log(this.name); //我是window
// 在函数中
function myFunction() {
name: "我是myFunction",
console.log(this.name); //我是window
}
myFunction();
//对象中有自己声明的量
var myObj1 = {
name: "我是obj1",
myfun1: function() {
console.log(this.name); //我是我是obj1
}
};
myObj1.myfun1();
//对象的this
var myObj2 = {
name: this.name,
myfun2: function() {
console.log(this.name); //我是window
}
}
myObj2.myfun2();
//使用call apply bind
myObj2.myfun2.apply(myObj1); //我是我是obj1
myObj2.myfun2.call(myObj1); //我是我是obj1
myObj2.myfun2.bind(myObj1)(); //我是我是obj1
アロー機能
函数名 = () => {函数体}
- せいぜい1つまたは複数のパラメータが書かなければならないとき
()
だけ1つのパラメータが書き込むことはできません
- 関数本体は一つだけの文、することはできませんで
{}
、デフォルトの結果への復帰;関数本体は複数の文、必要だった{}
、値が手動での書き込みにある場合に返される必要があるとreturn
。
使用シナリオ:マルチ定義のコールバック関数がために使用される
フォーカスを描く:これは矢印の関数ではないが、意思決定を呼び出したときに矢印機能は、これを所有していませんが、このオブジェクトで定義されているときにある
通常の関数、誰がこれをコールしますそれは誰を指しています。
外側の層の機能があるかどうかを確認するには、矢印のこの機能は、
- 存在する場合、これは、この外側の関数の内部の矢印の関数であり、
- いない場合、これはウィンドウです。
以下の3つの例は次のとおりです。
図1
- 直接関数fun、このウィンドウの楽しいポイント矢印関数を定義し、
- オブジェクトobjの方法として、楽しい、楽しい、ウィンドウには、このまだポイントです
- 両方の楽しさでは外部には機能しなかった取得、機能の取得を定義し、それはまだウィンドウを指し
図2
- 楽しい、楽しいポインタ矢印関数の外のウィンドウに定義されました
- 楽しみがまだ楽しい尖ったウィンドウので、外部で定義されているので楽しみでデモ機能のメソッド呼び出しとして、
- デモ機能は、矢印関数GET内で定義されて、そのためにも楽しいポインタがobj指し、同じデモ、デモのコールオブジェクトobj、OBJへのデモのポインタへのポインタを取得し、外側の関数は楽しいです取得します。
図3
- DEMO1機能と矢印DEMO2方法の正常な機能はOBJです
- 矢印関数は、外側DEMO1機能をget1正常な機能であり、このポインタDEMO1は、オブジェクトの呼び出しによってそのようOBJ DEMO1点を決定し、このポインタは、このポインタはまた、OBJ get1を指すように、同一の機能及び外層をget1
- 矢印関数は関数は、外側DEMO2機能矢印get2であり、このポインタDEMO2は、その外側の関数によって決定ではなく、外側のDEMO2機能、従って窓を指し、このポインタは、同一の機能および外層をget2、これはそうget2ありますポイントウィンドウ