您的位置:首页 > Web前端 > JavaScript

golang调用javascript文件里的函数

2016-12-13 22:19 253 查看
这里要用到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:= 2
jsa, 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: