新しい用途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システムにスーパーセットをインストールする手順
HTMLとは何ですか?簡単に言えば、HTML は Web ページを作成するために使用されます。とて...
要約すると: Readonly は入力 (テキスト/パスワード) とテキスト領域に対してのみ有効です...
以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...
ユーザーテーブル、ID番号は一意である必要があります、携帯電話番号、電子メールアドレスは一意である必...
1. LinuxのMySQLで中国語の文字化けが発生する。以下の操作を実行する。 vi /etc/m...
1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...
構造とプレゼンテーションを分離するもう 1 つの重要な側面は、セマンティック マークアップを使用して...
1. 基本的な使い方 <!DOCTYPE html> <html lang=&qu...
WindowsにTomCatをインストールするこの記事では、WindowsプラットフォームにTomC...
需要シナリオ: 既存の PXC 環境には大量のデータがあります。新しく購入したサーバーをこのクラスタ...
デフォルトでは、セルの幅と高さはコンテンツに応じて自動的に調整されますが、セルの幅と高さを手動で設定...
シナリオ 1: サーバーの制限により、外部に開かれているポートは 1 つだけですが、別の外部ネットワ...
CentOS7 のデフォルトのファイアウォールは iptables ではなく、firewalle で...
証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...
目次背景成し遂げるvue-cli2.0での設定方法の補足要約する背景プロジェクトにはローカル構成ファ...