0

変数にはプロパティがありますか?

明白な答えは NO です。プロパティを変数に割り当てようとすると、エラーが発生するはずです。右?

私が次のようなことをした場合:

 var someVariable = 'Cat';
 someVariable.eyes = 'two';   //Gives no error!

alert(someVariable.eyes);     // alerts 'undefined' instead of giving an error!
4

2 に答える 2

3

変数にはプロパティがありませんが、にはプロパティがあります。(とにかく、値がオブジェクトの場合。) この場合、eyes現在 によって参照されている文字列のプロパティを設定しようとしていますsomeVariable

ただし、この場合は機能しません。プリミティブ値にはプロパティがないため、JS はプリミティブ文字列値をオブジェクトに変換し、そのオブジェクトにプロパティを設定します。これはほとんどすぐに黙って破棄されます。最終結果: プリミティブ文字列は変更されません。

于 2013-05-25T04:13:52.527 に答える
1

「変数」は実際には存在せず (厳密にスコープの定義内を除く)、オブジェクトのみです。また、デフォルトでは、文字列オブジェクトに任意のプロパティを割り当てることはできません。

于 2013-05-25T04:14:10.417 に答える