jsのcaller属性とcallee属性の紹介と例_基礎知識

WBOY
リリース: 2016-05-16 16:45:35
オリジナル
1783 人が閲覧しました

1. 発信者

現在の関数を呼び出した関数への参照を返します。

関数名.caller

functionName オブジェクトは、実行される関数の名前です。

説明

関数の場合、caller 属性は関数の実行時にのみ定義されます。 関数が Javascript プログラムのトップレベルから呼び出された場合、呼び出し元には null が含まれます。

次の例は、caller 属性の使用法を示しています。

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

function callerDemo() {
if (引数.caller) {
var a= callerDemo.caller.toString();
alert(a);
} else {
alert("これはトップ関数です");
}
}
関数 handleCaller() {
callerDemo();
}
handleCaller();
関数 calleeDemo() {
アラート(arguments.callee);
}
calleeDemo();


2. 呼び出し先

実行中の Function オブジェクト (指定された Function オブジェクトの本体) を返します。

[function.]arguments.callee
オプションの関数パラメーターは、現在実行されている Function オブジェクトの名前です。

説明

callee 属性の初期値は、実行される Function オブジェクトです。

callee 属性は、関数オブジェクト自体への参照を表す引数オブジェクトのメンバーです。これは、匿名関数の再帰や関数のカプセル化を保証するのに役立ちます。たとえば、次の例では、 1からnまでの自然数の和。このプロパティは、関連する関数が実行されている場合にのみ使用できます。また、呼び出し先には長さ属性があり、検証にはこの方が適している場合があることにも注意してください。 argument.length は実際のパラメータの長さ、arguments.callee.length は仮パラメータの長さです。これにより、呼び出し時の仮パラメータの長さが実際のパラメータの長さと一致しているかどうかを判断できます。

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

//呼び出し先は自分自身を出力できます
function calleeDemo () {
alter(arguments.callee);
}
//パラメータの検証に使用されます
function calleeLengthDemo(arg1, arg2) {
if (arguments.length==arguments .callee .length) {
window.alert("仮パラメータと実際のパラメータの長さが正しいことを確認してください!");
return;
alter("仮パラメータの長さ: " argument.callee.length ); }
}
// var sum = function(n){
if(n< = 0)。




コードをコピーします

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

var sum = function(n){ if (1==n) return 1;else return n sum (n-1); 呼び出し時:alert(sum(100));
関数には sum 自体への参照が含まれています。関数名は単なる変数名です。現時点では、関数内で sum を呼び出すことは、それ自体を呼び出していることを反映できません。 callee を使用する方が良い方法です。
関連ラベル:
js
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート