ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript関数の内部プロパティについての簡単な説明_基礎知識

JavaScript関数の内部プロパティについての簡単な説明_基礎知識

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

関数内には、arguments と this という 2 つの特別な属性があります。 argument は、渡されたすべてのパラメータを含む配列のようなオブジェクトです。
ただし、このオブジェクトには callee と呼ばれる属性もあり、これは引数オブジェクトを所有する関数へのポインタです。

古典的な階乗関数の例を見てください:

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

関数 Factorial(数値) {
If (数値 1 を返します;
} else {
戻り値 num * Factorial(num - 1);
}
}
関数 Factorial(数値) {
If (数値 1 を返します;
} else {
num * argument.callee(num - 1);
を返します。 }
}

最初の方法を使用することに問題はありませんが、結合が高すぎるため、関数名を変更した後は内部関数名も変更する必要があります。
2 番目の方法は低結合です。関数名がどのように変更されても、関数の実行には影響しません。

これは、関数データが​​実行される環境オブジェクトを指します。または、この値とも言えます

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

window.color = "red";
var o = {color: "blue"};
関数sayColor() {
アラート(this.color);
}
sayColor();//red
o.sayColor =sayColor;
o.sayColor();//青

caller 属性は、現在の関数を呼び出す関数の参照を保持します。現在の関数がグローバル スコープで呼び出される場合、その値は Null

です。

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

関数アウター() {
inter();
}
function inter(){
//alert(inter.caller);//結合度が高すぎます
alert(arguments.callee.caller);
}
inner();

上記は JavaScript 関数の内部プロパティのすべての内容です。気に入っていただければ幸いです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。