Javascript 使用对象的名称运行函数

Javascript 使用对象的名称运行函数,javascript,Javascript,我想用JavaScript执行以下操作: var myObject.name = myString; function newFunction(){myObject.name} 是否可以使用字符串作为函数的内容?如何将其转换为可用?您可以使用eval()执行此操作,前提是myObject.name包含有效的Javascript: function newFunction(){ eval( myObject.name ); }; 您可以使用eval()来执行此操作,前提是myObject.n

我想用JavaScript执行以下操作:

var myObject.name = myString;

function newFunction(){myObject.name}
是否可以使用字符串作为函数的内容?如何将其转换为可用?

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

function newFunction(){ eval( myObject.name ); };
您可以使用
eval()
来执行此操作,前提是
myObject.name
包含有效的Javascript:

function newFunction(){ eval( myObject.name ); };
JavaScript有,但这通常不是您想要使用的函数

然后你会写:

var myObject.name = myString;

function newFunction() {
    eval(myObject.name);
}
然而,这通常是一个危险且不好的主意-从更高的层次上讲,你想做什么?

JavaScript有,但通常你不想使用这个函数

然后你会写:

var myObject.name = myString;

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

然而,这通常是一个危险而糟糕的想法——从更高的层面上讲,你想做什么?

我相信你想要
myString
保存代码,对吗

您可以使用该方法执行该代码


警告


但是一定要阅读这一部分。

我相信你想要
myString
保存代码,对吗

您可以使用该方法执行该代码


警告


不过,一定要阅读这一部分。

好的,我明白你的意思了。您可以这样做:

var newFunction = new Function(myObject.name);
这意味着如果
myObject.name
等于
“警报('it works')”
,当您调用
newFunction()
时,您将收到警报。(
newfunction(code)
eval
的替代品,特别适用于您正在执行的操作。)


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

好吧,我明白你的意思了。您可以这样做:

var newFunction = new Function(myObject.name);
这意味着如果
myObject.name
等于
“警报('it works')”
,当您调用
newFunction()
时,您将收到警报。(
newfunction(code)
eval
的替代品,特别适用于您正在执行的操作。)


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

我很难理解你想做什么。函数应该做些什么,而字符串和其他基本类型应该做些什么。为什么要创建一个只包含字符串的函数?这里不清楚您的意图。您发布的代码是有效的,但不会“执行”任何操作。您可以
返回myObject.name
将字符串从函数中取出,但除非这是您想要的,否则我们需要更多地了解您的目标。我认为他希望字符串成为函数的主体。像
myString=“return x;”“
-在这种情况下,他可以使用
eval()
您想将字符串
myObject.name
的内容视为javascript并执行它吗?如果是这样,您可以使用或类似地使用:
var myObject.name=“x=1,y=1”函数(){myObject.name;var myArray=[];myArray=myObject.name;return myArray}
我无法理解您试图执行的操作。函数应该执行某些操作,而字符串和其他基本类型应该执行某些操作。为什么要创建一个只包含字符串的函数?此处不清楚您的意图。您发布的代码是有效的,但不是“执行”的“什么都行。您可以
返回myObject.name
将字符串从函数中取出,但除非这是您想要的,否则我们需要更多地了解您的目标。我认为他希望字符串成为函数的主体。像
myString=“return x;”“
-在这种情况下,他可以使用
eval()
您想将字符串
myObject.name
的内容视为javascript并执行它吗?如果是这样,您可以使用或类似地使用:
var myObject.name=“x=1,y=1”function(){myObject.name;var myArray=[];myArray=myObject.name;return myArray}
与使用
eval()
的解决方案相比,我更喜欢这种方法。它在语法上更清晰一些。+1.我喜欢这种方法,而不是使用
eval()的解决方案
。它在语法上有点简洁。+1。