1. instanceofの使用法
関数 Person() {} 関数 Person2() {} Person を新規作成します。 console.log(usr instanceof Person); // true console.log(usr instanceof Object); // true console.log(usr instanceof Person2); // false 上記のコードに示すように、2 つのコンストラクター もちろん、結果は、 2. instanceofの実装
関数 myInstanceof(obj, コンストラクター) { // obj の暗黙的なプロトタイプ let implicitPrototype = obj?.__proto__; // コンストラクターのプロトタイプ const displayPrototype =constructor.prototype; // プロトタイプチェーンを走査します while (implicitPrototype) { // 見つかったので true を返す if (implicitPrototype === displayPrototype) が true を返します。 暗黙のPrototype = 暗黙のPrototype.__proto__; } // トラバーサルは終了しましたが、まだ見つかっていない場合は false を返します false を返します。 }
まず、インスタンス オブジェクトの暗黙的なプロトタイプ (コンストラクター関数 次に、前のレベルの暗黙的なプロトタイプを取得し続けることができます。 暗黙のPrototype = 暗黙のPrototype.__proto__; プロトタイプ チェーンをトラバースするには、
3. 検証
関数 Person() {} 関数 Person2() {} Person を新規作成します。 関数 myInstanceof(obj, コンストラクター) { 暗黙のPrototypeをobj?.__proto__とします。 const displayPrototype = コンストラクター.prototype; (暗黙のプロトタイプ) の間 { if (implicitPrototype === displayPrototype) が true を返します。 暗黙のPrototype = 暗黙のPrototype.__proto__; } false を返します。 } myInstanceof(usr, Person); // 真 myInstanceof(usr, Object); // 真 myInstanceof(usr, Person2); // 偽 myInstanceof(usr, Function); // 偽 myInstanceof(usr.__proto__, Person); // 偽 usr.__proto__ instanceof Person; // false ご覧のとおり、 興味深いことに、 一般的な手書きの JavaScript コード: 「GitHub — code-js」 JavaScript で手動で instanceof を実装する方法についての記事はこれで終わりです。JavaScript の instanceof に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Dockerコンテナ内のホストのホスト名が取得できない問題の解決方法
目次エラーメッセージ原因エラーのデモンストレーション回避策方法1方法2方法3エラーメッセージ現在の場...
Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...
目次序文インストールと使用方法モジュラー管理Vuex の状態永続性要約する序文Vue 開発では、ユー...
sudo 権限委譲の概要su スイッチ ID: su –l ユーザー名 –c 'コマンド...
現在、コンピュータモニターの画面解像度はますます高くなる傾向にありますが、携帯電話などのモバイルデバ...
1. 問題の説明 root@mysqldb 22:12: [xucl]> テーブル t1\G ...
React 16の内容です。最新技術ではありませんが、ドキュメントで調べるまであまり話題に上がらなか...
<br />2006年10月12日のNetEaseの新ホームページの公開から、2008年...
多くの友人がフォーラムやメッセージエリアで、どのような状況で MySQL をシャーディングする必要が...
イメージをダウンロードします(オプションの手順です。省略した場合は、手順 3 と 4 で自動的にイン...
序文ソースコードは合計で 100 行強しかありません。これを読めば、react-dnd などの成熟し...
Vue 3.x プロジェクトの作成 npm init @vitejs/app my-vue-app ...
結論は幅の%: 包含ブロック(親要素)の幅に基づいて、親の制限を超える幅のパーセンテージを定義します...
この質問に関連するニーズはまだないかもしれませんし、面接でこの質問をされたことがないかもしれませんが...
1. 単一行オーバーフロー1. 1 行がオーバーフローした場合、超過部分は表示されます...または、...