搜索
查看: 3090|回复: 1

eval在子线程的困惑

[复制链接]

4

主题

9

帖子

72

积分

一级会员

Rank: 2

积分
72
发表于 2014-6-18 17:34:46 | 显示全部楼层 |阅读模式
thread.create(线程)


function 线程(){

        import lianji
        lianji.测试2()
}

lianji库代码

function 测试1(){
       
        pp=3+5
        return pp;
       
}

function 测试2(){

        yy=eval("测试1()")
       
        win.msgbox(yy)
       
}
这样调用报错找不到测试1()
回复

使用道具 举报

5

主题

442

帖子

2420

积分

五级会员

Rank: 8Rank: 8

积分
2420
发表于 2014-6-18 18:05:30 | 显示全部楼层

eval 不是用来干这事的, 如果你是希望动态执行当前名字空间的函数,应当动态去获取函数对象本来就很方便。[code]函数名 = "测试1" self[ 函

eval 不是用来干这事的,
如果你是希望动态执行当前名字空间的函数,应当动态去获取函数对象本来就很方便。
  1. 函数名 = "测试1"
  2. self[ 函数名 ]()
复制代码


eval 是用来执行独立的代码,类似于载入一个独立的文件,所以他使用的是默认的全局名字空间,运行下面的代码试一下你就明白了:
  1. namespace a{
  2.     b = 123
  3.    
  4.     eval("
  5.         io.open() && io.print( a.b )
  6.     ")
  7. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-21 03:40 , Processed in 0.046875 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表