我正在序列化函数以通过网络发送它们。然后,它们从字符串形式执行到另一侧。
我可以这样做:
function test1() { console.log("test1") }
eval(`(${test1})`)()
我也可以这样做:
const test2 = function() { console.log("test2") }
eval(`(${test2})`)()
这也有效:
const test3 = () => { console.log("test3") }
eval(`(${test3})`)()
(所有这些都产生不同的字符串化版本的函数)
然而,这失败了:
class A {
test4() { console.log("test4") }
}
const a = new A
eval(`(${a.test4})`)()
错误是Unexpected token {
,因为字符串化方法是test4() { console.log("test4") }
,它不是有效的函数声明(它既不是命名也不是匿名)。
静态方法无法解决问题(结果相同)。
我的问题是:通过网络发送类方法的最佳方法是什么?感谢