0

javascript の object.name と object["name"] の主な違いは何ですか? どちらの方がよいですか?

4

4 に答える 4

2

.name有効な識別子を使用する必要があります。

[]変数内の文字列を含め、任意の文字列を使用できます。

文字列の作成は、識別子を使用するよりもわずかに効率が悪くなります。

于 2013-09-24T14:42:29.967 に答える
2

インデクサー表記を使用すると、プロパティ名を任意の式 (変数など) として指定できますが、ドット表記ではソースに有効な識別子が必要です。

可能な限りドット表記を使用する必要があります。
ランタイム式または無効な識別子を指定する必要がある場合にのみ、インデクサー表記を使用してください。

于 2013-09-24T14:42:40.793 に答える
0

javascript の object.name と object["name"] の主な違い

違いはありません。これらは、JS オブジェクト内のまったく同じ要素を参照します。

どちらの方がよいですか?

object.name参照している要素の名前がわかっている場合は、前者の方が適切です。よりクリーンで読みやすいからです。また、わずかに効率的ですが、大きな違いが生じるほどではありません.

動的な名前 (たとえば、ループからのキー、または連結された文字列から構築された名前) が必要な場合は、2 番目の構文を使用する必要がありますobject["name"]

于 2013-09-24T14:44:33.300 に答える
0

ドット表記の代わりにブラケット表記を使用すると、次のシナリオで役立ちます。

  • fields=["name","address",...] のような文字列の配列を反復処理する必要がある場合data[fields[i]]
  • クロージャ コンパイラを使用してコードをコンパイルする場合 (ドット表記は名前が変更されて壊れます)
  • あるタイプをドット、その他をブラケットとして使用して、変数のタイプを区別したい場合
  • ユーザー/クライアント側が使用するデータ フィールドを選択する場合。alert(data[arguments[1]])
于 2013-09-24T14:58:45.423 に答える