JavaScript オブジェクトを作成する 3 つの方法

JavaScript オブジェクトを作成する 3 つの方法

序文:

JavaScriptでは、オブジェクトはプロパティ名とプロパティ値の順序付けられていないコレクションです。オブジェクトは、オブジェクト リテラル、 newキーワード、およびObject.create()関数を使用して作成できます。

1. オブジェクトリテラル

let obj = {} // 空のオブジェクト let obj2 = {a:1, b:2}

let obj3 = {" hel": "wold"} // プロパティ名にスペースが含まれている場合は、文字列リテラルをプロパティ名として使用できます。

2. newキーワードはオブジェクトを作成する

新しいオブジェクトを作成するには、 newキーワードに続いてコンストラクタを使用します。

let o = new Object(); // 組み込みコンストラクター let m = new Math();

a = new Array() とします。

d = new Date() とします。

function Person(){ //カスタムコンストラクター}
person = 新しいPerson() を作成します。


3. Object.create() を使用してオブジェクトを作成する

o = Object.create({x:1, y:2}); とします。
コンソール.log(o.x+oy) //3


新しいオブジェクト o は{x:1, y:2}を継承します。プロパティ x と y は継承プロパティと呼ばれます。渡されたパラメータがnullの場合、このオブジェクトはどのオブジェクトも継承しません。継承されたオブジェクトは「プロトタイプ」とも呼ばれます。

オブジェクトを作成します(null)

4. 拡張演算子を使用します。

ES2018では、既存のオブジェクトプロパティを新しいオブジェクトにコピーするためのスプレッド演算子が追加されました。

foo = {x:1, y:2}とします。
bar = {z:3} とします

zoo = { ...foo, ...bar} とします。

console.log(zoo) // {x:1, y:2, z:3}


注意すべき点がいくつかあります:

  • 拡張演算子はオブジェクト自身のプロパティのみを拡張します。継承されたプロパティは拡張をサポートしません。
  • 拡張オブジェクトと拡張オブジェクトに同じ名前のプロパティがある場合、プロパティの値は後者のオブジェクトによって決まります。

5. Object.assign() メソッドを使用する

assign 、あるオブジェクトのプロパティを別のオブジェクトにコピーできます。Assign assign 2 つ以上のパラメータを受け入れます。最初のパラメータはターゲット オブジェクトで、2 番目以降のパラメータはソース オブジェクトです。この関数は、ソース オブジェクトのプロパティをターゲット オブジェクトにコピーし、ターゲット オブジェクトを返します。

foo = {x:1, y:2}とします。
bar = {z:3} とします

動物園 = {} とします

obj = Object.assign(zoo, foo, bar) とします。

console.log(zoo) // {x:1, y:2, z:3}

console.log(obj===zoo) // 真  

さらに、 ES6では2つの新しいオブジェクト機能が追加されました。

6. 省略されたプロパティ

複数の変数名と対応する値で構成されるオブジェクトを作成する場合は、従来のオブジェクトリテラル構文のようにオブジェクトを構築する必要があります。

x = 1、y = 2 とします。
o = {x:x, y:y}とします。

console.log(o) // {x:1, y:2}


ES6以降では、セミコロンとプロパティ名を省略してプロパティを直接省略することができます。

o2 = {x, y}とする

console.log(o2) // {x:1, y:2}

7. 省略法

オブジェクト内でメソッドを定義するときは、通常のプロパティを定義するのと同じように、関数式を通じて定義する必要がES6ます。

ポイント = {
    x:1、
    y:2,

    エリア: 関数(){
        this.x*this.y を返す
    }
}

コンソール.log(ポイント.エリア()) //2

ES6以降では、コロンとfunctionキーワードを省略して、オブジェクト メソッドを簡単に定義できます。

point2={とします
    x:1、
    y:2,

    エリア(){
        this.x*this.y を返す
    }
}

コンソール.log(point2.area()) //2

これで、JavaScript オブジェクトを作成する 3 つの方法についての記事は終了です。JavaScript オブジェクトの作成方法についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • js でオブジェクトを作成するさまざまな方法とその長所と短所のまとめ
  • js でオブジェクトとオブジェクト メソッドを作成するいくつかの方法の詳細な説明
  • JS でカスタム オブジェクトを作成する 6 つの方法の概要
  • JavaScriptオブジェクト作成モードの詳細な説明
  • JavaScript オブジェクト指向プログラミングの詳細な説明 [クラス作成、インスタンスオブジェクト、コンストラクタ、プロトタイプなど]
  • ネイティブ JavaScript で不変オブジェクトを作成する方法の簡単な例
  • JS オブジェクト作成パターン例のまとめ
  • JS カスタム オブジェクトの作成と簡単な使用例
  • JavaScript でオブジェクトを作成するための 4 つの一般的なパターンの分析

<<:  VMware Esxi のルート パスワードを忘れた後に正常に取得する方法

>>:  MySQL公式パフォーマンステストツールmysqlslapの使い方の紹介

推薦する

SQL 実装 LeetCode (185. 部門内で最も給与の高い上位 3 名)

[LeetCode] 185. 部門別給与上位3位従業員テーブルにはすべての従業員が保持されます。...

Dockerを使用してphabricatorをインストールする方法

ここでは Ubuntu 16.04 システムを使用しています。 dockerを使用したインストールh...

MySQL 8.0.22 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.22のインストールと設定について記録します。具体的な内容は以下のとお...

一般的なCSS3アニメーションの実装方法

1. 何ですかCSS アニメーションは、CSS を使用して拡張マークアップ言語 (XML) 要素をア...

MySQL における IF()、IFNULL()、NULLIF()、および ISNULL() 関数の使用に関する詳細な説明

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

MySQL 5.7 の /etc/my.cnf パラメータの紹介

以下は、mysql 5.7 の /etc/my.cnf の一般的なパラメータの一部です。これらを自分...

MySQL の 3 つの浮動小数点型 (float、double、decimal) の違いと概要について簡単に説明します。

各浮動小数点型のストレージ サイズと範囲は、次の表に示されています。タイプサイズ範囲(符号付き)範囲...

Vue の動的コンポーネントと非同期コンポーネントの詳細な理解

1. 動的コンポーネント <!DOCTYPE html> <html> &l...

MySQL で 2 つのセットの交差/差/和を取得する方法

MySQL の一般的なシナリオ: 2 つのデータ セットの交差と差を取得するステップ1. 2つのコレ...

CentOS7.5 の MySQL8.0.19 のインストールチュートリアルの詳細な手順

1. はじめにこの記事には MySQL インストール部分のスクリーンショットがないので、ある程度の基...

Centos7 に Nginx 統合 Lua サンプル コードをインストール

序文私が使用しているパソコンはMacで、OSはmacOS Mojaveです。コンピュータに仮想マシン...

Linux の fsevents モジュールによって発生する npm ls エラーの解決方法の詳細な説明

Mac で開発されたプロジェクトがあり、パッケージ npm i がインストールされており、すべて正常...

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...

uniappを使用してWeChatミニプログラムでEChartsを使用する方法

今日は、uniapp を使用して Echarts を統合し、マップ チャートを表示します。 mpvu...

Workbench を介して MySQL データベースにリモートでアクセスする方法の詳細な説明

序文Workbench が 1 台のコンピューターにインストールされており、別の Ubuntu サー...