這裏是我爲例:傳遞函數作爲參數
function a(b)
{
b();
}
function b()
{
alert("d");
}
function c()
{
alert("e");
}
a(c);//Output e
隨着小提琴:http://jsfiddle.net/YqeS3/
我怎麼能火從一個真正的B功能?
這裏是我爲例:傳遞函數作爲參數
function a(b)
{
b();
}
function b()
{
alert("d");
}
function c()
{
alert("e");
}
a(c);//Output e
隨着小提琴:http://jsfiddle.net/YqeS3/
我怎麼能火從一個真正的B功能?
如果乙functi關於是不是全球性的,你不希望使用命名約定,你可以創建一個附加功能
function d() {
b();
}
,並稱之爲一個來代替。我仍然認爲你應該簡單地說出你的論點和你的功能,因爲它也會爲其他人(包括你自己的未來版本)看到你的代碼創造更少的困惑。
如果所有這些功能都在全球範圍內定義,你可以使用這個:
window.b();
好...但如果'b'不是全球性的,我可以做些相當的事情嗎? – user1365010
啊,那你運氣不好。在JavaScript_中查看_shadowing [這裏](http://stackoverflow.com/questions/5373278/variable-shadowing-in-javascript) –
您可以通過兩種方法
b();
a(b);
。假定你需要調用真正的函數調用它b
從a
,你應該寫:
window.b();
函數a中的變量b只是一個局部變量,您可以指定任何您喜歡的名稱。在a範圍內調用b將使您無法在函數範圍內調用具有該名稱的外部變量或函數。正如之前這裏由Sirko回答,您可以通過使用的
window.b();
之外的功能範圍調用考慮重命名你的範圍變量,如果你有問題。
局部變量特朗普全局變量,使用更好的命名約定。 :) – epascarello
是的,這個問題沒有意義。你在做什麼是陰影變異 - 這往往是難以發現的錯誤。 – ZER0