golang调用javascript文件里的函数

来源:互联网 发布:diy图片制作软件 编辑:程序博客网 时间:2024/05/22 07:52

这里要用到otto---Go语言实现的JavaScript 解释器(github.com/robertkrimen/otto)

假设plugins.js里的内容有:

function addnum(a, b) {        return a + add5(b)}function add5(a) {  return a + 5}
要调用addnum函数,golang内容为:

f, err := os.Open("plugins.js")if err != nil {panic(err)}defer f.Close()buff := bytes.NewBuffer(nil)if _, err := buff.ReadFrom(f); err != nil {panic(err) }runtime := otto.New()if _, err := runtime.Run(buff.String()); err != nil {panic(err)}a:= 1 b:= 2jsa, err := runtime.ToValue(a)if err != nil {panic(err)}jsb, err := runtime.ToValue(userid)if err != nil {panic(err)}result, err := runtime.Call("addnum", nil, jsa, jsb)if err != nil {panic(err)}out, err := result.ToInterger()if err != nil {panic(err)}

得到的结果out会是8




0 0