フレームワークのソース コードを見ると、 1. isPrototypeOf() この機能を理解する鍵は、 ここでは原則を詳しく説明しません。簡単に言えば、次の 3 つのポイントがあります。
例 1、オブジェクト クラス インスタンス:o = 新しいオブジェクト(); console.log(Object.prototype.isPrototypeOf(o)); // 真
例 2: Human クラスを自分で定義します。関数Human() {} 人間 = 新しいHuman(); console.log(Human.prototype.isPrototypeOf(human)); // 真 この例は前の例と似ています。 例 3: オブジェクトのプロトタイプが人間のプロトタイプであるかどうかを確認しましょう。console.log(Object.prototype.isPrototypeOf(human)); // 真 なぜ?これはコードで説明した方がわかりやすいので、次の導出を参照してください。 // 人間のプロトタイプ (prototype) のプロトタイプ (__proto__) はオブジェクトのプロトタイプ (prototype) を指しているため Human.prototype.__proto__ === Object.prototype // そして、human (__proto__) のプロトタイプは Human (prototype) のプロトタイプを指しているので huamn.__proto__ === 人間.プロトタイプ // つまり、人間のオブジェクトのプロトタイプ (__proto__) は、オブジェクトのプロトタイプ (prototype) を指します。 huamn.__proto__.__proto__ === オブジェクト.prototype 人間の構造を見ると、これは簡単に理解できます。 では、 例 4: Object.prototype が組み込みクラスのプロトタイプであるかどうか: console.log(Object.prototype.isPrototypeOf(Number)); // 真 console.log(Object.prototype.isPrototypeOf(String)); // 真 console.log(Object.prototype.isPrototypeOf(Boolean)); // 真 console.log(Object.prototype.isPrototypeOf(Array)); // 真 console.log(Object.prototype.isPrototypeOf(Function)); // 真 当然、 例 5: オブジェクトは関数 (クラス) でもあります。また、 次の出力を参照してください。
2. instanceofとの違い
例えば: 関数Human() {} 人間 = 新しいHuman(); // human は Human のインスタンスなので、出力は true になります console.log(human instanceof Human); // true // すべてのクラスがObjectを継承しているので、結果もtrueを出力します console.log(human instanceof Object); // true // 人間のオブジェクトは配列ではないため、結果の出力は false になります console.log(human instanceof Array); // false 組み込みクラスの例をいくつか示します。 // [1,2,3]はArrayのインスタンスなので、出力はtrueになります console.log([1, 2, 3] 配列のインスタンス); // true // メソッドfunction(){}はFunctionのインスタンスなので、trueを出力します console.log(function(){} 関数のインスタンス);
したがって、私の理解では、これら 2 つの式の意味は同じですが、書き方が異なります。次の 2 つの出力は同じになるはずです。 console.log(B のインスタンス); console.log(B.prototype.isPrototypeOf(A)); まとめ 実際、 以下もご興味があるかもしれません:
|
<<: TinyEditorはシンプルで使いやすいHTML WYSIWYGエディタです
>>: MySql マスタースレーブレプリケーションメカニズムの包括的な分析
目次序文1. wgetを使用して単一のファイルをダウンロードする2. wget -Oを使用してダウン...
CSS3 の列シリーズ属性を使用してウォーターフォールレイアウトを作成する方法を紹介しました。興味の...
現在の要件は、ファイルのアップロード ボタンがあることです。ボタンをクリックすると、アップロードする...
1. インデックスを作成する理由(メリット)インデックスを作成するとシステムのパフォーマンスが大幅に...
CSS の無効な行の高さ設定についてまず、次のコード文字列を記述します。 <!DOCTYPE ...
1.前面に書きます:軽量仮想化テクノロジーとして、Docker には継続的インテグレーション、バージ...
この記事の例では、ログインと登録の効果を実現するためのvueプロジェクトの具体的なコードを共有してい...
一部の Web ページは大きく見えなくても開くのに非常に時間がかかる場合があります。一方、他の We...
MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...
目次1. プロセスとスレッドの概念2. ブラウザの原則3. 同期と非同期4. 実行スタックとタスクキ...
この記事では、参考までに、ビデオアップロード機能を実現するためのVueの具体的なコードを紹介します。...
ウェブページ上の画像が一般的に jpg、gif、png 形式であることは誰もが知っています。それらの...
目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...
私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...
目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...