gpt4 book ai didi

javascript - 有没有一种方法可以使用 PyV8 评估具有默认参数的 JavaScript 函数?

转载 作者:行者123 更新时间:2023-11-29 22:48:03 25 4
gpt4 key购买 nike

我正在尝试在 Python 中从 JavaScript 调用一个函数。我正在使用 PyV8,我可以成功调用一个函数并打印出结果。但是,如果函数包含默认参数,则会出现语法错误。

这很好用。

import PyV8

ctxt = PyV8.JSContext()
ctxt.enter()
ctxt.eval("function example(a){return a;}")
render = ctxt.eval("example('hello');")
print render

但是,当我使示例包含这样的默认参数时:

import PyV8

ctxt = PyV8.JSContext()
ctxt.enter()
ctxt.eval("function example(a = 'hello'){return a;}")
render = ctxt.eval("example();")
print render

我明白了SyntaxError: SyntaxError: Unexpected token = ( @ 1 : 19 ) -> 函数示例(a = 'hello'){return a;}

感谢任何帮助。

最佳答案

默认参数是 ES6 的一个特性。
PyV8 不支持 ES6 语法。您需要使用 shim/polyfil :

import PyV8

jsFunc = """
function test(msg, name) {
(msg === undefined) && (msg = 'hello');
(name === undefined) && (name = 'world');
return msg + ' ' + name
}
"""


ctxt = PyV8.JSContext()
ctxt.enter()
ctxt.eval(jsFunc)
render1 = ctxt.eval("test();")
render2 = ctxt.eval("test('hi');")
print render1
print render2

打印:

hello world
hi world

关于javascript - 有没有一种方法可以使用 PyV8 评估具有默认参数的 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57981378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com