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コンテナ内のホストのホスト名が取得できない問題の解決方法
新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...
WeChatアプレット計算機の例、参考までに、具体的な内容は次のとおりです。インデックス.wxml ...
Linux コンピュータには 2 つの時間があります。1 つはハードウェア時間 (BIOS に記録さ...
<br />ウェブページの色はウェブサイトのイメージを確立する鍵の一つですが、ネットユー...
この記事で使用されているPHPベースイメージはphp:7.3-apacheです。この記事の Lara...
この記事の例では、画像のドラッグアンドドロップ機能を実現するためのVueの具体的なコードを参考までに...
オペレーティング·システム: Win10 ホームエディションDockerをインストールします:公式サ...
導入スロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメントを記録で...
MySQL フルバックアップ1. バイナリログを有効にし、データベースから分離して別々に保存する v...
序文Samba は、サーバー プログラムとクライアント プログラムで構成され、Linux システム上...
Redis は分散キャッシュ サービスです。キャッシュは、大規模システムの開発やパフォーマンスの最適...
VMに慣れた後、BOXに切り替えるのは少し異なります。たとえば、コピーネットワークカードを2枚使って...
XHTMLの img タグは、次のように記述する必要があります: <img alt="...
この記事の例では、3階層メニューを再帰的に実装するVueの具体的なコードを参考までに共有しています。...
nginx がリソース圧縮を実現する原理は、ngx_http_gzip_module モジュールを介...