以下のような機能があります。 私の問題は、関数内にfunction b()
を印刷する必要があることです。ここではfunction a()
が親関数です。私はc= new a()
とconsole.log(b())
を取ってそれをしました。私は期待通りに正しい価値を持っています。しかし親関数の中にはtest()
という別の関数があり、同じ名前で親関数の外に別の関数があります。 function b()
を印刷した後、function test()
に電話します。しかし、それは親関数から値を返します。外的機能にあるneeded answer
というアラートを取得する必要があります。関数名を変更せずに期待通りの結果を得る方法はありますか?両方の機能test()
が必要です。javascriptと同じ関数名(入れ子関数と外部関数)
期待される結果:= 2
function b()
とfunction test()
=必要な答え現在の結果:= 2
function b()
とfunction test()
= 4
すべてのヘルプは理解されるであろう。ありがとうございました。
function a() {
\t var val = 1;
\t var otherval = 2;
\t
b = function() {
\t return val + 1;
}
test = function() {
qwerty = otherval + b();
alert(qwerty);
}
return 'OK';
}
\t
function test(){
alert('needed answer');
}
\t \t
c = new a();
console.log(b()); //return 2
test(); //alert 4 but I needed alert needed answer
あなたはvar' 'なしで変数を宣言するとき、彼らはグローバルスコープの一部になります。それを変更して動作します – Rajesh
コードフォーマットを修正してください –