web-dev-qa-db-ja.com

関数のJavaScriptパラメーター内の中括弧

関数のJavaScriptパラメーターを囲む中括弧は何をしますか?

var port = chrome.extension.connect({name: "testing"});
port.postMessage({found: (count != undefined)});
34
milan

中括弧はオブジェクトリテラルを示します。これは、データのキーと値のペアを送信する方法です。

したがって、この:

var obj = {name: "testing"};

このように使用してデータにアクセスします。

obj.name; // gives you "testing"

キーが一意である限り、オブジェクトにいくつかのコンマ区切りのキー/値のペアを指定できます。

var obj = {name: "testing",
           another: "some other value",
           "a-key": "needed quotes because of the hyphen"
          };

角かっこを使用して、オブジェクトのプロパティにアクセスすることもできます。

これは、"a-key"の場合に必要になります。

obj["a-key"] // gives you "needed quotes because of the hyphen"

角括弧を使用すると、変数に格納されているプロパティ名を使用して値にアクセスできます。

var some_variable = "name";

obj[ some_variable ] // gives you "testing"
35
user113716

この質問が行われてから、2番目に考えられる答えが発生しました。 Javascript ES6が導入されました 割り当ての破棄

var x = function({ foo }) {
   console.log(foo)
}

var y = {
  bar: "hello",
  foo: "Good bye"
}

x(y)


Result: "Good bye"
122

Javascriptの中括弧は、オブジェクトを作成するための省略形として使用されます。例えば:

// Create an object with a key "name" initialized to the value "testing"
var test = { name : "testing" };
alert(test.name); // alerts "testing"

詳細については、Douglas Crockfordの JavaScript Survey を確認してください。

2
camomilk
var x = {title: 'the title'};

プロパティを持つオブジェクトリテラルを定義します。できるよ

x.title 

'タイトルに評価されます。

これは、構成をメソッドに渡すための一般的な手法であり、ここで行われています。

0
hvgotcodes