2

重複の可能性:
JavaScript プロパティへのアクセス: ドット表記 vs. ブラケット?

私は現在、オープンソースのjavascriptプロジェクトコードのいくつかを読んでいますが、オブジェクトのプロパティにアクセスすることもあれば、のようにアクセスすることperson.nameもありますperson['name']

私にとって、ドット表記は他のものに対して非常に明確です。ドット表記は読み書きが簡単ですが、ソースコードでは、ドット表記が時々 [] 中括弧表記で使用されていることがわかり、その理由を理解しようとしています。

その理由は何ですか?

4

4 に答える 4

7

まず、文字列で動的にすることができます:

 var key = 'name';
 person[key];

第二に、サポートされていない他のシンボルもサポートしています

 var key = 'first-name';
 person[key];
于 2012-04-22T11:49:31.857 に答える
6

これがユースケースです(不可能なプロパティ名を持つ)

var obj = {};
> undefined
obj['first name'] = 'Ivan';
> "Ivan"
obj['first name']
> "Ivan"
obj.first\ name
> SyntaxError: Unexpected token ILLEGAL
obj.first name
> SyntaxError: Unexpected identifier
于 2012-04-22T11:48:49.887 に答える
2

プロパティ名をパラメーターとして渡す場合に、括弧を使用する非常に適切な理由を次に示します。

function showProperty(propertyName) {
    alert(person[propertyName]);
}

showProperty('name');
showProperty('age');

'headers'ドット表記を使用してプロパティにアクセスできますが、.が含まれているため、ドット表記を使用してプロパティにアクセスするrequestことはできません'Content-Type'request.headers-

request.headers['Content-Type'] = 'text/html';
于 2012-04-22T11:48:49.000 に答える
1

たとえば、属性名をパラメーターとして送信するメソッドでこの表記法を使用すると非常に便利です。

var Obj = function(){
    this.abc = function(){
        alert("abc!!!");
    };
    this.qqq = function(){
        alert("QQQ!!!");
    };
}

var showAlert = function(param){
    var myObj = new Obj();
    myObj[param]();
};

showAlert('abc');
于 2012-04-22T11:48:18.607 に答える