フレームワークのソース コードを見ると、 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 年以上 Java Web 開発に携わっており、HTML または JSP ページの作成は避け...
背景Docker の人気は、コンテナの共有と移植が容易であることと密接に関係しています。ユーザーは、...
1. 基本的な使い方これは MutationObserver コンストラクターを通じてインスタンス化...
概要MySQL には独自のイベント スケジューラもあり、これは Linux の crontab ジョ...
序文前回の記事では、主にグリッドシステムの基本原理を学び、簡単なケースを通してその原理を実践しました...
文法以下は、MySQL テーブルにデータを挿入するための INSERT INTO コマンドの一般的な...
パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...
基本的な紹介特徴Flexbox は、よりシンプルで効率的なレイアウト方法を提供する CSS 表示タイ...
デフォルトでは、表のタイトルは水平方向に中央揃えされます。ALIGN 属性を使用して、タイトル テキ...
この記事に誤りがあったり、ご提案がありましたら、お気軽にご連絡ください。よろしくお願いいたします。は...
html、アドレス、引用ブロック、本文、dd、div、 dl、dt、フィールドセット、フォーム、フレ...
良いアイデアを見つけたので記録しました。私は以前、スクロール効果を実現するためにjQueryを使用し...
目次1. 事務:取引の 4 つの主な特徴:同時トランザクションはどのような問題を引き起こしますか? ...
<br />友人と話し合っていたとき、フレームワークのレイヤー設計の中で最も核となるのは...
1. ファイアウォール設定ファイルを変更する # vi /etc/sysconfig/iptable...