インタビューの質問: JavaScript の呼び出しメソッド
タイトル:
function fn(a,b){ console.log(this); console.log(a); console.log(a+b); } fn.call(1); fn.call.call(fn); fn.call.call.call(fn,1,2); fn.call.call.call.call(fn,1,2,3);
答え:
fn.call(1); // 1,unknown,NaN
fn.call.call(fn); fn,1,2); // 1,2,NaN
fn.call.call.call.call(fn,1,2,3); // 1,2,5
; :
fn .call(1); call の最初のパラメーターは、呼び出しの前に関数内のキーワード this を変更するため、その後にパラメーターがないため、a と b は未定義となり、加算結果は NaN になります。
fn.call.call(fn) ;この部分は難しいですが、理解するのは簡単です。 fn.call は Function.prototype で call メソッドを見つけます (これも関数であり、関数クラスのインスタンスです。引き続き call/apply やその他のメソッドを呼び出すこともできます)。fn.call を関数 A とみなすことができます。次に、次のステップは Equal to A.call(fn) です。ここで call メソッドを実行し、A のキーワード this を関数 fn に変更して、関数 A (fn.call) を実行します。 fn, 1,2); 前回の記事のプロトタイプチェーンメソッドにより、fn.call.call.call を A(fn.call.call).call の実行とみなすことができます。このとき、括弧内のパラメータ fn が実行されます。が関数として実行されたので、 A.call(1,2) の実行になります。 1 は、呼び出し前に関数内でこれを変更する最初のパラメータとして使用され、次のパラメータは実パラメータとして関数の仮パラメータに渡されます。
fn.call.call.call.call(fn,1,2,3); 前の原則と同じです。
一般的な概要:
よく理解していない場合は、次の一般的なヒントも覚えておいてください:
2 つ以上の呼び出しが発生した場合、最初のパラメーターが実行され、最初のパラメーターは関数である必要があります。 2 つのパラメーターは、最初のパラメーターでこれを変更するためのものです。
3 番目以降のパラメーターは、実際のパラメーターとして最初のパラメーターに渡されます。
以上がインタビューの質問: JavaScript の呼び出しメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、スクリプトのパフォーマンスを大幅に向上させるための10の簡単な手順の概要を説明します。 これらの手法は簡単で、すべてのスキルレベルに適用できます。 更新の維持:NPMのようなパッケージマネージャーを使用して、Viteなどのバンドラーを使用して確認してください

Sequelizeは、約束ベースのnode.js ormです。 PostgreSQL、MySQL、MariadB、SQLite、およびMSSQLで使用できます。このチュートリアルでは、Webアプリのユーザー向けに認証を実装します。また、人気のある認証ミドルであるPassportを使用します

この記事では、jQueryライブラリを使用してシンプルな画像カルーセルを作成するように導きます。 jQuery上に構築されたBXSLiderライブラリを使用し、カルーセルをセットアップするために多くの構成オプションを提供します。 今日、絵のカルーセルはウェブサイトで必須の機能になっています - 1つの写真は千の言葉よりも優れています! 画像カルーセルを使用することを決定した後、次の質問はそれを作成する方法です。まず、高品質の高解像度の写真を収集する必要があります。 次に、HTMLとJavaScriptコードを使用して画像カルーセルを作成する必要があります。ウェブ上には、さまざまな方法でカルーセルを作成するのに役立つ多くのライブラリがあります。オープンソースBXSLiderライブラリを使用します。 BXSLiderライブラリはレスポンシブデザインをサポートしているため、このライブラリで構築されたカルーセルは任意のものに適合させることができます
