我有一个非常不方便的问题。
说我有以下功能
function name(namearg){
...
..
}
function handlefailed(){
..
..
}
function handlecover(){
..
..
}
现在我的问题,我有很多硬编码的html,无法更改,调用这两个函数
<a href="javascript:handlecover();javascript:name('MSS')">Link</a>
<a href="javascript:handlefailed();javascript:name('GPS')">Link</a>
<a href="javascript:handlefailed();javascript:name('NPS')">Link</a>
问题是我调用函数的顺序,我首先要查看调用的函数,handlefailed()或handlecover(),然后想知道发送给名称的名称功能
如果我以相反的方式调用函数,我就会完成
var theName;
function name(namearg){
theName = namearg
}
function handlefailed(){
callOtherfunctionInAnotherJavascript(getElements(theName + ".failed"));
}
function handlecover(){
callOtherfunctionInAnotherJavascript(getElements(theName + ".cover"));
}
但是现在这是不可能的,因为我在第一个函数之后调用了name函数。 有没有一种方法在javascript中“改变”函数的评估顺序,或者你们有一个聪明的解决我的问题,我得到namearg变量的值,并在handlefailed()&amp; handlecover()函数?
答案 0 :(得分:0)
你可以清空这两个功能:
function handlefailed(){
..
..
}
function handlecover(){
..
..
}
并创建两个满足您需求的新功能
function handlefailed2(){
..
..
}
function handlecover2(){
..
..
}
然后根据namearg deside对你要调用的函数调用函数名称(namearg)内的新函数
答案 1 :(得分:0)
var postFix;
function name(namearg){
callOtherfunctionInAnotherJavascript(getElements(namearg + postFix));
}
function handlefailed(){ postFix = '.failed'; }
function handlecover(){ postFix = '.cover'; }
答案 2 :(得分:0)
您可以声明另一个全局handleFunc
,并handlefailed
/ handlecover
分配哪个名称。
var theName;
var handleFunc = null;
function name(namearg)
{
if(handleFunc instanceof Function)
{
handleFunc(namearg);
handleFunc = null;
}
theName = namearg
}
function handlefailedCallback(namearg){ /* some code */}
function handlefailed()
{
handleFunc = handlefailedCallback;
}
function handlecoverCallback(namearg){ /* some code */}
function handlecover()
{
handleFunc = handlecoverCallback;
}
这使您可以灵活地继续使用name
而不会破坏代码的其他区域。