gpt4 book ai didi

javascript - Node JS 如何将字符串转为对象

转载 作者:搜寻专家 更新时间:2023-11-01 00:43:51 24 4
gpt4 key购买 nike

示例代码为:

// 4. execute tower.init latter read from bellow (1)
tower={
init:function(){ console.log('horee im here now, finaly after a day code');}
}

// 3. app object
app ={
publish:function(what,data){
data.nextModule.init();
}
}
// 2. then call this funct
var fires = function(){
return app.publish('subscriber',{ nextModule : 'tower'});
}
// 1. execute this first
fires();

解释题

  • 当我触发 fires() 1.
  • 2. 很好 app.publish('text',{nextModule:'tower');
  • 绕过 3. app.publish(text,data)

我的问题是

我想将 data.nextmodule 转换成对象或函数然后调用塔 module.init()

data.nextModule.init() 无法执行,因为 nextModuleString

如何让这段代码像这样运行

data.'tower'.init();

我已阅读此引用资料

Houshalter 的回答 converting an object to a string !不是将字符串转换为对象

node js 可以吗?
我们能否像 JSON.stringify(data) 一样简单地隐藏到对象

终端更新错误

         throw err;
^
TypeError: Object tower has no method `init`

最佳答案

两件事,首先将标识符 new 更改为其他内容。

其次,

data.newxtModule 是一个字符串,表示脚本中的变量。所有变量都是 GLOBAL 对象的一部分。因此,您可以通过将该变量的名称以字符串格式传递给 GLOBAL 对象来检索该变量。你将能够调用塔的 init()

只需更改这一行,

data.nextModule.init();

为了,

GLOBAL[data.nextModule].init();

最终代码应该是这样的。

// 4. execute tower.init latter read from bellow (1)
tower={
init:function(){ console.log('horee im here now, finaly after a day code');}
}

// 3. app object
app ={
publish:function(what,data){
GLOBAL[data.nextModule].init();
}
}
// 2. then call this funct
var new1 = function(){
return app.publish('subscriber',{ nextModule : 'tower'});
}
// 1. execute this first
new1();

这里是 Fiddle

关于javascript - Node JS 如何将字符串转为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25399048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com