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にデータディスクをマウントする方法

推薦する

Dockerコンテナはルーティングを介して直接通信し、ネットワーク通信を実現します。

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

Ubuntu16.04にclionをインストールするプロセス全体と手順の詳細な説明

CLion のプロセス全体を最初から説明します。CLion は、JetBrains がリリースした新...

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

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

HTML ベース URL タグ

その機能はグローバル スタイルを設定することです。その後の相対パスはこれに基づきます: <im...

ZabbixはSNMPに基づいてLinuxホストを監視します

序文: Linux ホストは、エージェント プログラムをインストールする場合でも、SNMP を使用す...

Vueは大画面ページのスクリーン適応を実現します

この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...

VUEプロジェクトでXSS攻撃に遭遇した実体験

目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...

数千万データを持つMySQLテーブルを最適化する実践記録

序文まずここで説明させてください。インターネット上では、Alibaba では 500 万のデータを異...

Vue+element はローカル検索機能付きのドロップダウン メニューを実装します

必要:バックエンドは配列オブジェクトを返し、それがフロントエンドで配列に結合されます。配列は名前に従...

10分でDockerを使ったマイクロサービスのデプロイ方法を学ぶ

Docker は 2013 年のリリース以来、広く注目され、ソフトウェア業界を変える可能性を秘めてい...

Tomcat で server.xml と content.xml を変更した後の自動復元の問題の解決方法

設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...

ページのスクロールバーを無効にするには、overflow: hiddenを使用します。

コードをコピーコードは次のとおりです。 html {オーバーフロー: 非表示; }体{オーバーフロー...

MySQL の計画タスクとイベント スケジュール例の分析

この記事では、例を使用して、MySQL の計画されたタスクとイベントのスケジュールについて説明します...

ウェブページの右下隅に「いいね!」カード効果を実現するための CSS (サンプルコード)

効果 HTML を実装するには、まずクリーンな HTML ページを準備し、ノードを記述します。 &l...

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

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