跳到主要内容
CNode

知道模块名称,如果获得模块对象?

社区
Ggemini发布于 14 年前最后回复 14 年前
852650

simple case as follows: 1.这样是ok的 1 #!/usr/bin/env node 2 3 var util = require("util") 4 var obj_name = util // 这里是一个对象 5 6 var obj_info = util.inspect(obj_name, true, null) 7 util.log(obj_info);

2.如果我想传的是字符串(模块名称),然后如何得到这个这个模块的对象? 1 #!/usr/bin/env node 2 3 var util = require("util") 4 var obj_name = "util" // 这里是一个字符串(模块名称) 5 var obj = get_object(obj_name) // 有没有只有一个函数?? 6 var obj_info = util.inspect(obj, true, null) 7 util.log(obj_info);

js新手,或许不是什么复杂问题,还望路过的各位指教一二,非常谢过~~

查看回复

回复 (8)

D
DoubleSpout#714 年前

碰到这类问题我一般使用命名空间来解决。 var nameSpace = { 'util':function(args){ //do something } } var obj_name = 'util' nameSpace [ obj_name ]; //执行了util 函数,不用使用evil

如果是全局都要用的方法,可以利用 global 对象的命名空间 希望对你有所帮助。

I
italkboy#614 年前
引用 italkboy可以使用eval哦: var obj = eval(obj name);

@gfh21cn js是解释型语言嘛,eval就很自然咯

G
gemini#414 年前
引用 leizongmin没看懂神马意思。载入模块用require(name)。

大概是这样的,我是学习到了util.inspect(object, [showHidden], [depth], [colors])这个函数,然后练习的时候,误传了一个字符串(object string)到了本该是对象object的位置,然后就没得到正确结果。

然后就想到应该有个东西可以由对象名称得到对象object这样的一个函数或方法。

G
gemini#314 年前
引用 italkboy可以使用eval哦: var obj = eval(obj name);

it works. extremely grateful to you~~

L
leizongmin#214 年前

没看懂神马意思。载入模块用require(name)

I
italkboy#114 年前

可以使用eval哦: var obj = eval(obj_name);

参与回复

登录后即可参与回复。登录