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

推薦する

Truncate Table の使用法の説明

テーブルを切り捨てる個々の行の削除をログに記録せずに、テーブル内のすべての行を削除します。文法 テー...

Expressプロジェクトファイルディレクトリの説明と詳細な機能の説明

app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...

MySQL 5.7.19 Winx64 ZIP アーカイブのインストールと使用に関する問題の概要

今日はMySQLのインストール方法を学びましたが、その過程でいくつか問題が発生しました。関連記事をい...

要素の読み込み効果を実現するための純粋なHTML+CSS

これは Element UI の読み込みコンポーネントのエフェクトです。かっこいいですね。実装してみ...

iviewは動的なフォームとカスタム検証期間の重複を実装します

フォーム項目を動的に追加するiview の動的なフォーム追加は非常に簡単です。フォーム項目を配列に設...

IE6 の歪み問題

質問: <form...> の下の <input type="hidde...

JavaScript 中断要求に対するいくつかの解決策の詳細な説明

目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...

シンプルな虫眼鏡効果を実現するJavaScript

大きな箱の中に写真があります。マウスをその上に置くと、半透明のマスク レイヤーが表示されます。マウス...

CSS3 フリップカード番号サンプルコード

今日会社から課題をもらったのですが、効果図は以下のとおりです。 どのような効果を実現したいかは特に決...

HTMLリンクを書くときは、HTTPリクエストを減らすためにサブフォルダに必ずスラッシュを追加してください。

サブフォルダーの末尾にスラッシュがない場合、2 つの HTTP リクエストが生成され、効率に影響しま...

Windows で MySQL サービスを停止または削除できない問題の解決策

圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...

Linux リモート管理と sshd サービス検証の知識ポイントの詳細な説明

1. SSHリモート管理SSH の定義SSH (Secure Shell) は、主にキャラクタ イン...

Docker の win ping 失敗コンテナ回避ガイド

win docker-desktopを使ってコンテナ開発に接続し、ネットワーク上で色々試してみたいと...

Linux システムでの Selenium クローラー プログラムの導入の概要

目次序文1. セレンとは何ですか? 2. 使用手順1. ライブラリをインポートする2. テストコード...

MySQL 8.0 パスワード有効期限ポリシーの詳細な説明

MySQL 8.0.16 以降では、パスワードの有効期限ポリシーを設定できます。今日は、この小さな知...