ホームページ >ウェブフロントエンド >jsチュートリアル >javascript_javascript スキルにおける呼び出し先と呼び出し元の使用法と応用シナリオ

javascript_javascript スキルにおける呼び出し先と呼び出し元の使用法と応用シナリオ

WBOY
WBOYオリジナル
2016-05-16 18:14:22942ブラウズ

caller :
functionName.caller は呼び出し元を返します。

以下の関数を見て、VS にコピーして実行できます。

コードをコピーします コードは次のとおりです。

function caller() {
if (caller.caller) {
alert(caller.caller.toString()); else {
>alert("関数を直接実行");
}
}
関数 handleCaller() {
caller();
caller(); ;



最初のアラートは呼び出し元関数を呼び出す呼び出し元 handleCaller をポップアップし、2 番目のアラートは他の関数本体では呼び出されないため、呼び出し元は null であることがわかります。そして、alert(" 関数が実行されました 直接実行");


callee:


指定された Function オブジェクトの本体である、実行中の Function オブジェクトを返します。
callee は引数です。関数オブジェクト自体への参照を表す属性メンバー。これにより、匿名

関数の再帰が容易になり、関数のカプセル化が保証されます。 次のコードは、最初に callee の使用法を説明します。サンプル コードはインターネットから取得したものです



コードをコピーします コードは次のとおりです。 : function calleeLengthDemo(arg1, arg2) {
alert(arguments.callee.toString());
if (arguments.length == argument.callee.length) {
window.alert("パラメータと実際のパラメータの長さが正しいことを確認してください。");
return;
} else {
alert("実際のパラメータの長さ: " argument.length); 🎜>alert("形式パラメータの長さ: " argument.callee.length);
}
}
calleeLengthDemo(1);


最初のメッセージ ボックスが calleeLengthDemo をポップアップします。関数自体。これは、呼び出し先が関数オブジェクト自体への参照であることを示します。 callee のもう 1 つの非常に便利な用途は、実際のパラメーターが行パラメーターと一致しているかどうかを判断することです。上記のコードの最初のメッセージ ボックスが表示されます。実際のパラメーターの長さは 1 で、関数自体のパラメーターの長さである仮パラメーターは 2 です。シナリオ:
呼び出し先アプリケーション シナリオは通常、匿名関数に使用されます
インターネットから抜粋した次のコードを見てください




コードをコピーします


コードは次のとおりです。
関数にはそれ自体への参照が含まれています。関数名は関数内で呼び出すことと同じです。
グローバル変数を呼び出すと、呼び出し自体を十分に反映できません。現時点では、callee を使用する方が良い方法です。




コードをコピーします

コードは次のとおりです:

var fn=(function(n){ if(n>0) return n argument.callee(n-1); return 0; })(10); alert( fn)
これにより、コードがより簡潔になります。これにより、グローバル変数の汚染も防止されます。

呼び出し元のアプリケーションシナリオは主に、関数自体がどの関数を呼び出しているかを確認するために使用されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。