JavaScript は現在最も人気のあるクロスプラットフォーム言語の 1 つであるはずです。私はフロントエンドでいくつかの興味深いものを試してきましたが、この言語を十分に習得できていないことがわかりました。ちょっと時間がもったいないので、今の空き時間を利用して足りないものを追加していきたいと思います。
これの暗黙的なバインディング
最初見たときは、理解できずに戸惑いました。その後、同様の状況では、同様の方法を使用して同じ問題を解決できます。そこで知識を整理して探しやすくしてみました。
これは Javascript 言語の設計上のエラーですが、関数はオブジェクト、配列はオブジェクトなどであるため、このエラーは避けられないようです。 「JavaScript: The Good Parts」から例を引用
このときの合計の結果は7です。
このモードで関数を呼び出すと、これはグローバル変数にバインドされます。
つまり、現在の環境では、これ
を次のように呼び出すことができます
};
console.log(user.hello());
このメソッドで変数を定義し、それに値 this を割り当てると、内部関数はその変数を通じて this にアクセスできます。
var that = this
状況がもう少し複雑な場合は、以下を使用する必要があります:
1.この変数のスコープは常に、最も近い囲み関数によって決定されます。
2. ローカル変数 (me、self、that など) を使用して、このバインディングを内部で使用できるようにします。
簡単な例:
var MM = function(){
z = 新しい M();
This.name = "MM";
z.printName = function(){
console.log(this.name);
};
z.printName();
を返します
};
var mm = 新しい MM;
これにより MM が返されます。また、ES5ではコールバック関数のbindメソッドが利用できます。
その他
もうひとつのハロー、ワールド
私は偶然 print('Hello')('World') に遭遇し、'Hello, World' を出力しました。
いわゆる高階関数は非常に便利なようです。興味があれば、次の記事を読んでください。