使用对象名称来运行函数

时间:2012-01-03 23:55:38

标签: javascript

我想在JavaScript中执行以下操作:

var myObject.name = myString;

function newFunction(){myObject.name}

是否可以使用字符串作为函数的内容?你怎么把它转换成可用的?

4 个答案:

答案 0 :(得分:2)

好的,我得到了你想做的事。你可以这样做:

var newFunction = new Function(myObject.name);

这意味着如果myObject.name等于"alert('it works')",当您致电newFunction()时,您会收到提醒。 (new Function(code)eval的替代方案,专门用于您正在做的事情。)

但这在JavaScript(以及一般的编程)中被认为是非常糟糕的做法,因为可以改变自身的代码很快就会变得无法管理,并且通常有更好的方法来做事。除非你告诉我们你在做什么,否则我不能说更好的方式。

答案 1 :(得分:1)

您可以使用eval()执行此操作,假设myObject.name包含有效的Javascript:

function newFunction(){ eval( myObject.name ); };

答案 2 :(得分:0)

JavaScript有the eval() function,但这通常不是您想要使用的功能......

然后你会写:

var myObject.name = myString;

function newFunction() {
    eval(myObject.name);
}

然而,这通常是一个危险而且不好的主意 - 在更高的层面上,你想做什么?

答案 3 :(得分:0)

我相信你希望myString举行代码,对吧?

您可以使用eval()MDN docs方法执行该代码。

function newFunction(){ eval(myObject.name); }

警告!

请务必阅读Don't use eval!部分..