昨日の「JavaScript 決定版ガイド」学習ノート No. 10: ECMAScript 5 Enhanced Object Model の記事で、コードのデバッグ中に奇妙な現象が発生しました。そのソース コードを以下に掲載します。
この結果は正しいですが、1 か所変更すると結果は異なります
これはなぜですか?単純な変数名を変更しただけです
問題は名前にありますが、JS に詳しくなく、理解できませんでした。インターネットで情報を検索しましたが、結果が見つかりませんでした。先輩にアドバイスを求め、彼も名前を変更しました: http://bbs.csdn.net/topics/390799744?page=1#post-397474060、
の名前は次のとおりです。 window 属性。ウィンドウの名前とデータを設定または返すために使用されます。タイプは文字列です。最初の文は関数 Person(){} で終了しているため、次のコードはグローバル コンテキストにある可能性があります。つまり、alert(JSON.stringify(name)) が上記の出力変数名であると考えられます。ですが、実際に出力されるのは window.name です。出力される[Object object]は、この型がnameの値の型になります。