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

在javascript中,是否可以向函数名添加字符串?,javascript,function,Javascript,Function,我只是想问一下,是否可以获取一个字符串,它将始终是常量,并向其添加函数名。 例如: function modifyFunctionName(theFunc) { var newFunc = "link" +theFunc; return newFunc; } //Somewhere in the HTML: <input type='submit' value='button' onclick='modifyFunctionName(CheckLogin())'/>

我只是想问一下,是否可以获取一个字符串,它将始终是常量,并向其添加函数名。 例如:

function modifyFunctionName(theFunc)
{
    var newFunc = "link" +theFunc;
    return newFunc;
}
//Somewhere in the HTML:
<input type='submit' value='button' onclick='modifyFunctionName(CheckLogin())'/>
函数修改函数名(theFunc)
{
var newFunc=“link”+theFunc;
返回newFunc;
}
//在HTML中的某个地方:
因此,
modifyFunctionName
将返回
linkCheckLogin()

编辑:对不起,伙计们,实际上我想做的是:


功能一(){
警报(“一”);
}
eval(“函数二(){one();}”);
二();
基于以下问题: 不太清楚您打算做什么,无论如何,您可以评估任何附加到范围的内容:

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

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

从技术上讲,这是可能的,但您必须使用
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'

看起来很适合解决XY问题()。您真正想做的是什么?似乎OP希望根据
CheckLogin()
返回值为
按钮指定不同的事件处理程序函数。
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'