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

推薦する

wavesurfer.js によるオーディオ波形描画の実装

1. レンダリングを見る進むを選択: 後方を選択: コードは次のとおりです(例): <テンプレ...

スタイルをより標準化するための CSS の書き方に関する 5 つのヒント

1. CSSをアルファベット順に並べるアルファベット順ではありません:コードをコピーコードは次のとお...

docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

Docker-ComposeとはCompose プロジェクトは、以前の fig プロジェクトから派生...

Eclipse と IDEA 用に Tomcat サーバーを構成する方法

tomcat サーバーの構成誰もが Web について学習するときに、自分のツール用に Tomcat ...

Vue.jsはアイコンをクリックしてズームインし、

前回の記事では、Vue で画像の切り抜きや拡大・縮小、回転を実現する方法を紹介しました。今回は、アイ...

Linux 最速のテキスト検索ツール ripgrep (grep の最良の代替)

序文テキスト検索ツールといえば、Linux で最も便利でよく使われるツールの 1 つである grep...

Vueは開始時間と終了時間の範囲クエリを実装します

この記事では、Vueで開始時間と終了時間の範囲を照会する方法を参考までに紹介します。具体的な内容は次...

Zabbix上のすべてのホストのIPとホスト名を取得する

ザビックスZabbix ([`zæbiks]) は、WEB インターフェースに基づいて分散システム監...

Vue データ内のプロパティをランダムに変更すると、ビューは更新されますか?

インタビュアー: Vue のソースコードを読んだことはありますか?応募者:あります。インタビュアー:...

シンプルなHTMLとCSSの使い方の詳細な説明

HTML と CSS を含む JD.com のホームページの静的ページ効果を 3 日間で完成させます...

divコンテナ内の背景色または画像は、サイズが大きくなるにつれて大きくなります。

コードをコピーコードは次のとおりです。高さ:自動 !重要;高さ:550px;最小高さ:550px; ...

Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル)

簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...

Docker Compose を使用して Confluence を構築するチュートリアル

この記事は「Attribution 4.0 International (CC BY 4.0)」ライ...

Vueは州、都市、地区のカスケード選択を実現します

最近、省、市、地区のカスケード選択効果を実装する必要があります。省、市、地区のデータはすべてローカル...

WeChatアプレットに2048ミニゲームを実装する詳細なプロセス

レンダリング サンプルコード今日は、WeChat アプレットを使用して 2048 ゲームを実装します...