JavaScript では、グローバル変数がグローバルに宣言されると、それは同じ名前のグローバル オブジェクトのプロパティになります。しかし、ローカル変数は関数内で宣言しても関数(オブジェクト)の属性にはならず、「関数名.属性名」で宣言する必要があるのですが、これはなぜでしょうか?
PHP中文网2017-06-26 11:00:35
次のように理解できます:
関数内で宣言された変数は、関数オブジェクトではなく、関数実行コンテキストオブジェクトに属します
グローバル環境で宣言された変数は、グローバル実行コンテキストオブジェクトに属し、このコンテキストオブジェクトがグローバル環境オブジェクトです
淡淡烟草味2017-06-26 11:00:35
JavaScript では、グローバル変数がグローバルに宣言されると、同じ名前のグローバル オブジェクトのプロパティになります。ローカル変数は関数内で宣言されると、関数の属性であるローカル オブジェクトになるため、最初に関数にグローバルにアクセスしてから、関数内のローカル変数にアクセスする必要があります。