新しい用途new の機能は、コンストラクターを通じてインスタンス オブジェクトを作成することです。インスタンス、プロトタイプ、コンストラクターの関係は次の図に示されています。 まずはまとめましょう
詳細な説明新しい操作を実行すると、次の手順が順番に実行されます。 1. 空のオブジェクトを作成する
obj = {} とします 2. 空のオブジェクトの内部プロパティ__proto__がコンストラクタのプロトタイププロパティに割り当てられます。
関数Foo(num) { this.number = 数値 } obj.__proto__ = Foo.prototype 3. コンストラクタのthisを空のオブジェクトにポイントする
Foo.call(obj, 1) 4. コンストラクタ内のコードを実行する
5. 新しいオブジェクトを返す
新しいオペレータのエミュレーション次の myNew 関数は、new 演算子の動作をシミュレートします。 関数 myNew(func, ...args) { obj = {} とします obj.__proto__ = func.prototype res = func.apply(obj, args) とします。 res インスタンスオブオブジェクトを返します? res : obj } 関数Foo(num) { this.number = 数値 } foo1 = myNew(Foo, 1) とします。 console.log(foo1 instanceof Foo) // true console.log(foo1.number) // 1 foo2 = new Foo(2) とします。 console.log(foo2 instanceof Foo) // true console.log(foo2.number) // 2 上記のinstanceof演算子は、コンストラクタの戻り値がObjectのインスタンスであるかどうか、つまり参照型の値であるかどうかを判断するために使用されます。これは、すべての参照型の値がObjectのインスタンスであり、Objectがすべての参照型値の基本型であるためです。 さて、JavaScript の new 演算子の原理に関するこの記事はこれで終わりです。JS の new 演算子の原理に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Ubuntuのpython3でvenvを使用して仮想環境を作成する
>>: Windows10システムにスーパーセットをインストールする手順
1. package.jsonに追加する "メイン": "electr...
この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方...
さっそく、コードをお見せしましょう。コードは非常にシンプルなので、勉強すれば理解できるようになります...
1. ユーザーとグループを追加する1. mysqlユーザーグループを追加する # グループ追加mys...
要素 ui テーブルにはドラッグ アンド ドロップによる並べ替え機能が組み込まれておらず、サードパー...
導入Docker コミュニティは、さまざまなユースケースを処理するのに役立つ多くのオープンソース ツ...
<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...
序文私は以前から、SQL 文がどのように実行され、どのような順序で実行されるのかを知りたいと思ってい...
ウェブサイトがワイドスクリーンの場合、ブラウザ ウィンドウを左右にドラッグすると、ウェブサイトの幅が...
クラウドサーバーを使用するとデータベースに接続できる場合もありますが、Navicat Premium...
1. まずMySQLとEclipseの環境を準備します。環境がセットアップされたら、Eclipseの...
ステップ1: Stowをインストールするこの例では CentOS を使用しているため、拡張 EPEL...
この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...
この記事では、具体的な例を使用して、CentOS 7 から CentOS 8 にアップグレードする方...
一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われています。これは HTML 言...