⚠ 前提条件:
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 ストレージエンジンのメモリ管理の詳細な説明
ここでは主に、WeChat アプレットでラッキーホイール ゲームを開発する方法を紹介します。主に J...
zhangxinxu より https://www.zhangxinxu.com/wordpress...
テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...
プロジェクト中、プログレスバーを実装するために js の requestAnimationFrame...
IE8には複数の互換モードがあります。 IE プラットフォームの設計者である Chris Wilso...
MySQL データベースにとって binlog バイナリ ログがどれほど重要であるかについては詳し...
今日は折り紙飛行機(飛べる飛行機)を作ります基本的にすべてCSSで実装されており、JSはごく一部に過...
面接には必需品、仕事でも必ず使います。うーん、誰でも分かるでしょう。これ以上何も言わずに、要約とレン...
この記事の例では、ポップアップ効果を実現するためのjsの具体的なコードを参考までに共有しています。具...
目次1. 前処理2. 前処理塗布方法A. 例: B. 実行計画の変更を追跡するための前処理C. スト...
//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...
目次ストレージエンジンMySQL でサポートされているストレージ エンジン同時実行制御ロック粒子をロ...
しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...
インターネット上には多くのチュートリアルがありますが、基本的には同じです。ただし、細かい原因でソフト...
1. CSSスコープの使用(スタイル分割) Vue では、CSS スタイルを現在のコンポーネントでの...