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の使い方の紹介

推薦する

Mybatis マッパー動的プロキシの原理の分析

序文動的プロキシの原理を説明する前に、まず、mybatis を統合した後の dao 層の 2 つの実...

Facebookの情報アーキテクチャの分析

<br />原文: http://uicom.net/blog/?p=762 Faceb...

Jira リバース プロキシを実装するための nginx について

概要: nginx リバース プロキシ jira を構成し、https を実装します。Tomcat ...

CSS3で実装された炎のアニメーション

成果を達成する実装コードhtml <div class="コンテナ">...

HTML タイトル属性をラップする方法

数日前にプログラムを書いていたとき、プロンプト情報 (TITLE) を新しい行で囲みたいと思いました...

実用的な基本的な Linux sed コマンドのサンプルコード

Linux ストリーム エディターは、データ センターでスクリプトを実行するのに便利な方法です。これ...

組み込み Linux で QT アプリケーションを再起動する簡単な方法 (QT4.8 qws ベース)

アプリケーション ソフトウェアには通常、次のようなビジネス要件があります。新しいバージョンの APP...

ReactでCSSをエレガントに書く方法

目次1. インラインスタイル2. インポート方法を使用する3.cssモジュールのエクスポート4. ス...

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

MySQL マスター スレーブ データベースが同期されない問題を解決する 2 つの方法

目次MySQL マスター スレーブ データベースが同期されない問題を解決する 2 つの方法1. 非同...

大規模なデータテーブルのコピー効率を向上させるMySQLソリューション

序文この記事では主に、MySQL で大規模なデータ テーブルのコピーの効率を向上させることに関する関...

一目でわかる$nextTickの説明

目次1. 機能説明2. 親コンポーネント3. サブコンポーネント NextTick.vue 4なぜ未...

Vue のライフサイクルとフック関数の詳細な説明と典型的な面接の質問

目次1. Vue ライフサイクル2. フック機能2.1 4つの段階と8つの方法に分かれています。 2...

Linux での SELinux を理解する方法

目次1. SELinux の紹介2. SELinuxの基本概念2.1 仕事の種類2.2. セキュリテ...

Tencent インタビュー: SQL ステートメントの実行が非常に遅くなる理由は何ですか? ---後悔シリーズは見ないで(推奨)

正直に言うと、この質問には MySQL のコア知識がかなり必要で、コンピュータ ネットワークの知識を...