コードを直接アップロードします:
リーリーこれが上記のコードの異なるポイントを指している理由は何ですか?
もう完全に理解できました。いくつか答えてください。
大家讲道理2017-07-05 10:58:18
関数借用関数とコンストラクター関数を捨てると、残るのは通常の関数とオブジェクトメソッドの2種類だけです。
オブジェクトメソッドはオブジェクトを指し、通常の関数はグローバルを指します
曾经蜡笔没有小新2017-07-05 10:58:18
誰がこの関数を呼び出しても、this
は誰を指します。
this
的指向只和你如何调用这个函数有关,比如你说第一个this
指向test
,这可不一定,有的是办法把这个this
的指向改掉。只有当你运行test.outer()
的时候,第一个this
才会指向test
のポインティングは、この関数の呼び出し方法にのみ関係します。たとえば、最初の
test
を指す場合、これは必ずしも当てはまりません。 のポインティングを変更する方法はいくつかあります。 🎜。 test.outer()
を実行する場合のみ、最初の 🎜 は test
を指します。 🎜女神的闺蜜爱上我2017-07-05 10:58:18
これはクロージャの問題です。関数メソッドを含むオブジェクト リテラルを通じてオブジェクトに属性が割り当てられ、この関数メソッドにコンソール出力があり、この関数内で関数が宣言されると、通常の状況ではクロージャの問題が発生します。特別な状況では、この値を変更できます。携帯電話の不便さについての洞察が得られます。
巴扎黑2017-07-05 10:58:18
実際、匿名で回答するのは間違いです!オブジェクト内の関数内で定義された関数は、上位レベルの環境変数を直接取得することはできません。ましてや、この方法で var that=this などの変数を定義する必要があります。このオブジェクトをレベル調整します
var test = {