我只是想问一下是否可以取一个字符串,它总是不变的,并为它添加一个函数的名称。 一个例子:
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
答案 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 ;
}
问题是你为什么要那样做?