web.script库(JS、VBS解释器), JavaScript用aar函数重封装方法

By admin at 2017-12-02 • 0人收藏 • 1717人看过
//web.script库(JS、VBS解释器)
import console;
import web.script

//创建一个支脚本虚拟机
var vm = web.script( )

//添加一个接口非常简单,直接给vm添加table成员即可。
vm.external = {
	aardio_function = function(x,sum){
		console.log("我是aardio脚本,我被Javascript调用了,x =",x,"sum = ",sum)
	}

}

var javascript = /*  
     //var sum  = 0;//这个放这里,就是一个全局变量,值会一直保留
	function test(x,y) { 
		var sum  = 0;//放这里,就是局部变量,值每次调用清0
		external.aardio_function(x,sum);//调用aardio接口
		
		sum+=x;
        for(i=0;i<10001;i++) 
                sum = sum+x;
	
        return sum; 
	
	}

*/
vm.AddCode(javascript); //加载脚本

io.open() //打开控制台

sum = vm.Run("test",16,23); //运行函数
console.log( sum )
sum = vm.Eval('test(16,23)') //用脚本表达式求值
console.log( sum )
vm.ExecuteStatement('test(16,23)') //执行脚本,不返回任何值
console.log( sum )

//重置虚拟机,丢弃所有对象和代码
vm.Reset()
var javascript = /*   
	function add(a,b) {   
		return a+b
	}

*/
vm.AddCode(javascript); //加载脚本

//直接调用函数,支持多参数,并直接获取返回值
ret = vm.CodeObject.add(12,23)
console.log( ret )

//显示第一个函数的名称
console.log( vm.Procedures(1).Name )

execute("pause") //按任意键继续
io.close()

如果没有那个vm.reset();

那么

vm.Procedures(1).Name

这个显示就一直是:jsConstructor ,除非改为(2)就可以得到函数名字了

这个问题待定.


为什么我要测试这个函数呢?

我准备把这个功能用在webkit调用js上面去,这样定义和添加个虚拟js机之后,就可以想什么时候用就什么时候用,而不用每次写那么多代码

但是,仔细想想,貌似自己封装一个aar函数给js代码,效果应该一样.....

1 个回复 | 最后更新于 2017-12-03
2017-12-03   #1

测试发现,我理解这个功能错误了..


这个就是建立一个解析js的虚拟机, 然后再虚拟机里运行js代码,

用途: 如果你手里有js代码现成的算法, 那么可以用这个虚拟机运行这个算法,然后再aar里执行这个算法函数.....

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...