⚠ 前提条件:
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 ストレージエンジンのメモリ管理の詳細な説明
Nginx 仮想ドメイン名設定を使用すると、ドメイン名を購入せずに特定のドメイン名を介してローカル ...
最近、HTML を再度学習しており、これは HTML に対する新たな理解と言えます。これを過小評価し...
目次1. ページの概要2. 下限と上限3. ページディレクトリを使用する4. ページの実際の外観4....
1. インライン参照:ラベルに直接使用されるが、メンテナンスコストが高い スタイル='フォ...
今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...
1. VMware 15.5から新しい仮想マシンを作成する1. VMware を開き、ホームページで...
<div class="サイドバー"> <div> &...
この記事は主にMybatisでの動的SQL文の解析について紹介します。この記事のサンプルコードは非常...
どの for ループまたは反復子がニーズに適しているかを知ることで、アプリケーションのパフォーマンス...
コードをコピーコードは次のとおりです。 <div スタイル="幅:630px;高さ:...
目次1. ダウンロード2. インストール3. my.ini ファイルを設定する(デフォルトのエンコー...
目次1. イメージをプルする1.1 関連するイメージをプルして実行する1.1.1 関連する画像を取得...
序文配列は特別な種類のオブジェクトです。 js には実際の配列はなく、オブジェクトを使用して配列をシ...
序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...
序文: MySQL では、マスター/スレーブ アーキテクチャが最も基本的かつ最も一般的に使用されるア...