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

推薦する

HTML の title 属性を正しく使用するためのヒント

コンテンツを携帯電話、タブレット、支援技術のユーザーから非表示にし、キーボードのユーザーにのみ表示す...

Javascript における非同期待機の詳細な理解

この記事では、async/await がすべての JavaScript 開発者にとって非同期プログラ...

Vue2.0+ElementUI+PageHelperで実装されたテーブルページング機能

序文最近、いくつかのフロントエンド プロジェクトに取り組んでおり、ページにいくつかのテーブルを表示す...

新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

通常の説明%はどのクライアントでも接続できることを意味しますlocalhostはローカルコンピュータ...

GoogleとFacebookがDockerを使わない理由

この記事を書いた理由は、修正した分散 PyTorch プログラムを Facebook のクラスター上...

MySQL で SQL 文の実行時間を表示する方法

目次1. 初期SQLの準備2.MysqlはSQL文の実行時間をチェックします3. さまざまなクエリの...

動的画像読み込み技術の応用とjquery.lazyloadプラグインの使用例

アプリケーション例ウェブサイト http://www.uhuigou.net画像の動的読み込みは目新...

Dockerコンテナ内でホストDocker操作を呼び出して実行する

まず、この投稿は Docker 初心者向けです。もちろん、ベテランであれば記事中の分割線以降の操作方...

vue3 キャッシュページキープアライブと統合ルーティング処理の詳細な説明

目次1. はじめに2. 使用1. vue2とvue3の違い2. ページ上の一部のデータはキャッシュす...

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

仕事を探しています!!!事前準備:まず、このアニメーションは、以前のローディングアニメーションとクー...

crontab でスケジュールされたタスクが実行されない理由の概要

序文最近、仕事でいくつかの問題が発生しました。crontab でスケジュールされたタスクが実行されま...

Dockerを使用してRedisクラスターを構築する方法

目次1. Redis Dockerベースイメージを作成する2. Redisノードイメージを作成する3...

ノードを使用して静的ファイルキャッシュを実装する方法

目次キャッシュキャッシュ位置の分類キャッシュ設定ヘッダーNodeは静的ファイルキャッシュを実装する強...

MySQL ルートパスワードをリセットする方法

目次1. ルートパスワードを忘れてしまい、データベースにアクセスできない: DBA にとって、スーパ...

FirefoxでCookieとお気に入りをインポートおよびエクスポートする方法

Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...