フレームワークのソース コードを見ると、 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. CDから仮想マシンを起動する2. GPartedツールを使用してパーティション...
日常の開発では、データベースの追加、削除、変更、クエリが一般的に行われるため、Mysql で NUL...
HTML で長いデータを表示する場合、マウスをその上に移動するとデータを切り捨てて完全なデータを表示...
基本的な紹介前回の記事では、CSS3 のフレックスボックスを紹介しました。今日は、CSS3 のもう ...
この記事の例では、ドロップダウンボックス選択コンポーネントを実装するためのjsの具体的なコードを参考...
MySQLデーモンの起動に失敗したエラーの解決方法数日前、公開されたウェブサイトはこれらのアクティビ...
v-for ディレクティブリストといえば、ループについても触れなければなりません。v-for 命令は...
目次前提条件テストページの設定書き換えルールの作成命名規則モードの定義アクションの定義設定ファイル内...
MySQL 5.5.56無料インストール版の設定方法をテキストコードで詳しく説明します。具体的な内容...
一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...
MySQL Binログデータの回復: 誤ってデータベースを削除した場合前書き: テスト マシンで誤っ...
インターネットは人々の生活にますます欠かせないものになってきていると思います。 Ajax や fle...
目次1. システムイメージファイルをダウンロードする2. 新しい仮想マシンを作成する3. Kali ...
コードをコピーコードは次のとおりです。 <選択> <オプション値="&q...
テーブル構造を設計する場合、数値型は最も一般的な型の 1 つですが、数値型をうまく使用するのは想像す...