Js における new 演算子の役割の詳細な説明

Js における new 演算子の役割の詳細な説明

序文

Js は現在最も一般的に使用されているコード操作言語であり、その中でも new 演算子は特によく使用されます。多くのコード初心者にとって、Js で new がどのような役割を果たし、何に使用され、何をするのかは明確ではありません。この記事では、まず新人オペレーターの役割から始め、新人オペレーターの関連知識を簡単に紹介します。

何が新しいのですか?

ご存知のとおり、JS では、new の役割はコンストラクターを通じてインスタンス オブジェクトを作成することです。

次のようになります: (通常の関数とは異なり、関数がコンストラクターとして使用される場合、区別するために最初の文字は通常大文字になります。)

関数Foo(名前){
  this.name = 名前;
}
console.log("new Foo('mm')'s type:",typeof new Foo('mm')); // オブジェクト
console.log("Foo の型:",typeof Foo); // 関数


空のオブジェクトを作成します

var obj = 新しいオブジェクト();

Js コードでは、 new 演算子の主な機能はオブジェクトを生成することです。オブジェクト作成の基礎を築くために、new を使用して空のオブジェクトを作成します。

プロトタイプチェーンの設定

obj.__proto__ = Func.prototype;

new 演算子を使用して JS でベースを構築した後、プロトタイプ チェーンを設定するという JS コード操作の次のステップが始まります。 new コンストラクターによって作成されたインスタンスは、コンストラクター プロトタイプ チェーン内のプロパティにアクセスできます。つまり、プロトタイプ チェーンは、new 演算子を通じてインスタンスと構築関数をリンクします。

(this ポインターを変更) Func 内の this が obj を指すようにし、Func の関数本体を実行します。

var 結果 =Func.call(obj);

一般的に、Js コード グループでは、 this が出現するとコンストラクターは正常に動作しますが、 this ポインターが new 演算子によって変更されると、戻り値が正常に返されます。

Func の戻り値の型を決定します。値型の場合は、obj を返します。参照型の場合は、この参照型のオブジェクトを返します。

 if (typeof(result) == "object"){
  関数=結果;
}
それ以外{
  関数 = obj;
}

上記の new 演算子コード セットからわかるように、new は Func の戻り値の型を決定するためにも使用できます。戻り値が値型の場合は、通常どおり返されます。参照型の場合は、参照型のオブジェクトを返します。

上記 4 点が Js コードにおける new 演算子の主な機能です。Js コード初心者の皆さんのお役に立てれば幸いです。

要約する

Js における new 演算子の役割に関するこの記事はこれで終わりです。Js における new 演算子の役割の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JSにおけるnewの原理と実装について詳しく話しましょう
  • JS の new 関数の詳細な説明
  • JavaScript の new 演算子の原理と例の詳細な説明
  • JavaScript で new を実装する 2 つの方法の調査
  • JavaScript の new 演算子を自分で実装する方法
  • c# Newtonsoft.Json の一般的なメソッドの概要
  • C# Newtonsoft.Json は、複数のネストされた JSON を解析してデシリアライズする例です。
  • c# Newtonsoft.Json パッケージ操作の追加
  • JavaScriptの新しいコマンド
  • JS での new の手書き実装

<<:  Dockerでローカルマシン(ホストマシン)にアクセスする方法

>>:  Tencent Cloud Server Centosにデータディスクをマウントする方法

推薦する

WindowsにMySQL5.7圧縮パッケージを素早くインストールする

この記事では、Windows に MySQL 5.7 圧縮パッケージをインストールする方法について説...

docker redis5.0 clusterの実装 クラスタ構築

システム環境: Ubuntu 16.04LTSこの記事では、6 つの Docker コンテナを使用し...

一般的な HTTP ステータス コード 10 個の詳細な説明

HTTP ステータス コードは、Web サーバーの HTTP 応答ステータスを示すために使用される ...

Linux 上での MySQL データベースのインストールと Java プロジェクトの構成に関する詳細なグラフィック説明

1. MySQLデータベースをインストールする① ダウンロードして解凍し、/opt/softディレク...

タイムスタンプの差を計算するSQLメソッド

タイムスタンプの差を計算するSQLメソッド概要場合によっては、特定のレコードを時間で検索する必要があ...

子要素の margin-top によって親要素が移動する問題の解決方法

問題の説明今日、ページ スタイルを変更していたときに、子要素にmargin-top設定したのに、子要...

Python Django アプリケーションを Docker 化する方法

Docker は、開発者やシステム管理者がアプリケーションを軽量コンテナとして構築およびパッケージ化...

WebStormはVue3統合APIのソリューションを正しく識別できません

1 問題の説明Vue3 の統合 API は、defineComponent やその他の関数が認識でき...

MySQL 学習チュートリアル クラスター化インデックス

クラスタリングは、実際には InnoDB データベース エンジンに関連しています。したがって、インデ...

CSS を使用して画像の色を変更する 100 の方法 (収集する価値あり)

序文「画像処理というと、PhotoShop などの画像処理ツールを思い浮かべることが多いです。フロン...

CentOS8 でローカル yum ソースを構成するための詳細なチュートリアル

centos8 ディストリビューションは、BaseOS および AppStream リポジトリを通じ...

Vueはビデオ再生を実装するためにビデオタグを使用します

この記事では、ビデオタグを使用してビデオ再生を実装するVueの具体的なコードを参考までに共有します。...

CentOSにDockerをインストールする方法

ここでは比較的簡単なインストール方法のみを紹介します。 1. yumを使用してインストールするyum...

Vue3 でモバイル ログインおよび登録モジュールをエレガントに実装する方法

目次序文入力ボックスコンポーネントレイアウトvモデルデータ検証ルール設計形状サブコンポーネントは検証...

LinuxソースコードからTIME_WAITの期間を分析する

目次1. はじめに2. まずLinux環境を紹介しましょう3. TIME_WAIT状態遷移図4. 継...