在javascript中,是否可以在函数名称中添加字符串?

时间:2012-04-13 15:45:49

标签: javascript function

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

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

3 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

<script>

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

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

</script>

答案 2 :(得分:0)

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

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

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