⚠ 前提条件:
1 新しいオペレータの紹介MDN ドキュメント: クラス Person { コンストラクタ(名前) { this.name = 名前; } } // カスタムオブジェクトタイプのインスタンスを作成する const person = new Person('Xiao Ming') // コンストラクタを使用して組み込みオブジェクトのインスタンスを作成する const date = new Date() newの役割:オブジェクトのインスタンスを作成する 2 新しいものは何をしましたか?上で、 new Person() を例に挙げてみましょう。これを実行すると、次のことが起こります。 空のシンプルなJSオブジェクトを作成する 定数オブジェクト = {} このオブジェクトに属性 obj.__proto__ = Person.プロトタイプ コンストラクタ Person.apply(オブジェクト) コンストラクタが明示的にオブジェクトを返さない場合は、新しく作成されたオブジェクト、つまり 3 新しい演算子の実装をシミュレートする上で述べたように、 const _new = 関数(コンストラクタ、...引数) { 定数オブジェクト = {} obj.__proto__ = コンストラクタ.prototype const res = コンストラクタ.apply(obj, args) // この手順については「補足」で詳しく説明します return res instanceof Object ? res : obj } コードは非常にシンプルで、上記の4つの手順に従って段階的に記述するだけです。 4 補足
この方法を使ってステップ1と2を組み合わせることができます const obj = Object.create(コンストラクタ.プロトタイプ) // const obj = {} と同等 obj.__proto__ = コンストラクタ.prototype ステップ4では、
関数Person() { ... 戻り値 1 } コンストラクタが明示的にオブジェクトを返す場合(例: この場合、 関数Person() { // 関数もオブジェクトです return function() {} } したがって、_new 関数の最後のコード行は次のようになります。 res インスタンスオブオブジェクトを返します? res : obj
class Animal { ...}_new(Animal) // エラーを報告します: クラスコンストラクタ Animal は 'new' なしでは呼び出せません // クラスは new を使用してのみ作成できます JS での new の手書き実装に関するこの記事はこれで終わりです。JS でのより関連性の高い new コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: MySQL InnoDB ストレージエンジンのメモリ管理の詳細な説明
この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...
目次Vue 再帰コンポーネントドラッグイベント最近、Vue を使用して、ドラッグ可能なツリー構造図と...
目次1. ソリューション 1 (UDF)デモケース2. ソリューション2(binlogの解析)キャナ...
この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを参考までに紹介します...
目次序文キーの役割差分アルゴリズムにおけるキーの役割ヘッドノードを同期するテールノードを同期する新し...
WindowsでMySQLデータベースのマスターとスレーブを構成する詳細なプロセスは次のとおりです。...
目次01. レンダリングが不要な場合はuseStateを使用する02. リンクの代わりにrouter...
vue2と比較して、vue3にはアプリの概念が追加され、vue3プロジェクトの作成も // メイン....
MySQL 高度な SQL ステートメント kgc を使用します。 テーブルlocation(Reg...
序文nginx モジュールには、公式とサードパーティの 2 種類があります。nginx のインストー...
Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...
例: PHP バックグラウンド コードを通じて、従業員情報を削除したり、削除した従業員情報を復元した...
UCenter Homeは、ComsenzがリリースしたSNSサイト構築システムです。最新バージョン...
1. まずSELECT文を実行して、すべての切り捨て文を生成します。ステートメント形式: selec...
1.mysql-5.7.19-winx64.zip(これは無料のインストールバージョンで、約318 ...