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) jdkファイルが保存されているフォルダパスを入力します私はここにいますusr/local/jd...
mysql5.7.21 zipの詳細なインストール手順は次のとおりです。 1. 解凍して指定されたデ...
この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介...
まずは効果の写真をお見せしましょう。 個人的には効果は問題ないと思います。アプリが写真を学習する時間...
まず質問させてください。HTML ページを作成するときに、外部から JS ファイルをインポートする場...
最近、Dreamweaver を使用して製品プレゼンテーションを作成し、画像にハイパーリンクを追加し...
1. CSS3の三角形は特殊効果でズームし続けます11.1 画像プレビュー 11.2 index.h...
以下のように表示されます。 CSSコードコンテンツをクリップボードにコピー分割{境界線: 2px 固...
基本概念絶対配置: 絶対配置に設定された要素ボックスはドキュメント フローから完全に削除され、その包...
1. ダウンロード2. 減圧3. パス環境変数を追加し、mysqlが配置されているbinディレクトリ...
HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...
導入Docker コミュニティは、さまざまなユースケースを処理するのに役立つ多くのオープンソース ツ...
この記事は、透明度を変えてカルーセルにするXiaomiカルーセルを真似て書いたものです。初心者なので...
仮想マシンは使用中であるか、接続できません次のようなエラーが報告された場合解決まずこのページにアクセ...