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 に答える