ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript の動的メソッド呼び出しとパラメーター変更の問題についての深い理解_JavaScript スキル

Javascript の動的メソッド呼び出しとパラメーター変更の問題についての深い理解_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 17:10:091113ブラウズ

JavaScript では、次のように、渡されたパラメータを関数内で変更できます

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

関数 func1(名前) {
名前 = 'ユリ';
アラート(名前);
}
func1('ジャック');//出力lily
別の例を見てください

コードをコピーします コードは次のとおりです:
function fun1( n) {
this.name = n;
}
function fun2(name) {
fun1.call(this,'lily'); >alert(name);
}
fun2("jack");//出力 "jack"


fun1 関数は fun2 を "lily" に呼び出すときにパラメーターを変更しようとしました、しかし失敗しました。出てくるのはやはり「ジャック」です。理由を考えてみてください。

実際、fun1 には fun2 を呼び出すときに、呼び出し元属性


function fun1() {
argument.callee.caller.arguments[0] = 'lily';
}
function fun2(name) {
fun1.call(this,name);
alert(name);
}
fun2("jack");//出力 "lily"


可視、外側レイヤー 関数は内部関数の呼び出しスタックに表示され、変更可能です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。