繁体   English   中英

如何将字符串转换为带有属性和函数引用的Javascript对象?

[英]How to convert a string to a Javascript object with a property and a function reference?

我想产生一个Javascript对象,其中包含类型函数(myClickHandler示例)的属性(onClick示例),如下所示:

var options = {onClick: this.myClickHandler};

我希望上面的对象是从字符串创建的,因为每次应用程序运行时options对象都可以不同,并且希望在运行时对其进行评估。 myClickHandler是现有函数)。 我想要从字符串创建的options对象,因为onClick属性可以是其他东西,而其功能也可以是其他东西。 这些是从动态字符串确定的。

寻找这样的事情:

var optionsString = "{onClick: this.myClickHandler}";  
var options = JSON.parse(optionsString); //won't work. For illustration only.

这自然不会起作用。 理想情况下,我想一次性转换字符串,但是我可能必须解析它,但是optionString可以包含一个或多个属性。

尝试将eval用作:

var myClickHandler = function(){ alert('i am evil'); };
var options = JSON.parse('{ "onClick": "this.myClickHandler" }');

//立即调用处理程序

eval(options.onClick)();

您需要函数绑定到的某些上下文,以便可以通过键(可以是字符串)访问该函数。

 let context = {}; context.myclickhandler = () => { console.log("### It clix ####") } let nameOfFunction = "myclickhandler" let obj = {"onClick" : context[nameOfFunction]}; obj["onClick"](); 

在示例中,上下文只是一个object,但也可以是windows对象或构造函数的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM