想请教下,这个函数里面只能用eval才能生成新的对象,不用eval就没法生成对象,不用eval函数怎样实现处理对象?

qq_33180520 qq_33180520 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


<script type="text/javascript">

function test(path){

var arr= path.split(".");
var ns='';
for(var i=0;i<arr.length;i++){

if(i>0){ ns+='.';}

ns+= arr[i];
/* ns = new Object();
*/

eval(" {"+ns+"=new Object();}");
}


}
test("AAA.bbb");
alert(AAA.bbb); //为啥只能用eval这里才能正常显示对象?
</script>


假如这样写 结果就是AAA未定义


<script type="text/javascript">

function test(path){

var arr= path.split(".");
var ns='';
for(var i=0;i<arr.length;i++){

if(i>0){ ns+='.';}

ns+= arr[i];
ns = new Object();


/* eval(" {"+ns+"=new Object();}"); */
}


}
test("AAA.bbb");
alert(AAA.bbb); //为啥只能用eval这里才能正常显示对象?
</script>



用eval的话 最后就可以把传递的参数最终处理为对象,
有无不用eval 把传递的参数处理为对象?谢谢了
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
qq_33180520
JavaScript 87,983 成员 224,681 内容