JavaScript オブジェクトにおける変数 "name" の動作の不一致
JavaScript では、変数名には文字列値として特別な役割が割り当てられています。ウィンドウ オブジェクト (window.name)。この固有の特性は、name を JavaScript オブジェクトと組み合わせて使用する場合、予期しない動作を引き起こす可能性があります。
グローバル スクリプトとして実行される次のコード スニペットを考えてみましょう:
var name = {}; name.FirstName = 'Tom'; alert(name.FirstName);
Chrome では、このコードは次のように生成されます。アラートが表示されると「未定義」と表示されますが、IE と Firefox では FirstName プロパティにアクセスでき、「Tom」と表示されます。
この矛盾これは、Chrome が明示的に window.name を文字列に強制するために発生します。その結果、割り当て var name = {} は基本的にグローバル変数名 (window.name) を「[object Object]」に設定します。 name はプリミティブになったため、name.FirstName などのプロパティを設定しようとしても無効になります。
この問題を解決するには、name をグローバル変数として使用しないようにしてください。別の変数名を割り当てることで、window.name に関連付けられた固有の動作が誤ってトリガーされないようにすることができます。
以上が「var name = {}」を割り当てるとブラウザごとに異なる結果が生じるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。