[解決済み] Javascriptのオブジェクトリテラル:{a, b, c}とは一体何でしょうか?
2023-04-08 03:22:12
質問
私が抱いている疑問は、次のような方法で与えられるのがベストでしょう。 このjsfiddle そのためのコードは以下のとおりです。
var a = 1, b = 'x', c = true;
var d = {a: a, b: b, c: c}; // <--- object literal
var e = [a, b, c]; // <--- array
var f = {a, b, c}; // <--- what exactly is this??
// these all give the same output:
alert(d.a + ', ' + d.b + ', ' + d.c );
alert(e[0] + ', ' + e[1] + ', ' + e[2]);
alert(f.a + ', ' + f.b + ', ' + f.c );
どのようなデータ構造かというと
f
? の単なる略記なのでしょうか?
d
?
どのように解決するのですか?
オブジェクト・イニシャライザー プロパティの略記 をES6で定義しています。
var f = {a, b, c, d:1}; // Will be equal to {a:a, b:b, c:c, d:1}
これは、プロパティ値がプロパティ識別子と同じ名前を持っているために動作します。これは、構文に新しく追加された オブジェクト初期化子 ( セクション 11.1.5 ) を、最新の ECMAScript 6 ドラフト Rev 13 . そしてもちろん、ECMAScript 3 から設定された制限と同じように、予約語をプロパティ名として使用することはできません。
このような省略記法はあなたのコードを劇的に変えることはなく、すべてを少し甘くするだけです!
function createCar(name, brand, speed) {
return { type: 'Car', name: name, brand: brand, speed: speed };
}
// With the new shorthand form
function createSweetCar(name, brand, speed) {
return { type: 'Car', name, brand, speed }; // Yes it looks sweet.
}
これらの表記法のサポートについては、互換性テーブルを参照してください。サポートされていない環境では、これらの表記は構文エラーになります。
この省略記法は、かなりうまくオブジェクトマッチングを提供します。
で ECMAScript5 を使っていたもの。
var tmp = getData();
var op = tmp.op;
var lhs = tmp.lhs;
var rhs = tmp.rhs;
で行うことができます。 ECMAScript6 を1行のコードで実行できます。
var { op, lhs, rhs } = getData();
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]