0

我只是想问一下是否可以接受一个字符串,它总是不变的,并在其中添加一个函数的名称。一个例子:

function modifyFunctionName(theFunc)
{
    var newFunc = "link" +theFunc;
    return newFunc;
}
//Somewhere in the HTML:
<input type='submit' value='button' onclick='modifyFunctionName(CheckLogin())'/>

所以modifyFunctionName将返回linkCheckLogin()

编辑:对不起伙计们,实际上我真正想做的是:https ://gist.github.com/2371187

4

3 回答 3

1

它在技术上是可能的,但你必须使用eval,这不是一个好主意。您可以做的是创建一个对象并仅存储对函数的引用,它的工作方式大致相同。

var obj={};

function addFunction(name,func){
  obj[name]=func;
}

function changeName(oName,nName){
  obj[nName]=obj[oName];
  delete obj[oName];
}

addFunction('test',function(){return 'hi'});
obj.test();//returns 'hi'
changeName('test','greet');
obj.greet();//returns 'hi'
于 2012-04-13T15:59:14.557 回答
0
<script>

    function one() {
        alert("one");
    }

    eval("function two() { one();}");
    two();

</script>
于 2012-04-13T15:53:28.827 回答
0

基于这个问题:你打算做什么不是很清楚,无论如何,你可以评估任何附加到范围的东西:

myFunction(aString){
// window is the scope , the context.
window[aString] = myFunction ;
}

问题是你为什么要这样做?

于 2012-04-13T15:53:29.853 回答