我正在使用iOS的JavaScriptCore框架,但我很难获得一个JavaScript(es6)类来调用另一个方法。这是我的游乐场代码。
do {
let j = JSContext()!
j.evaluateScript("class Base123 { method1(arg1) { return this.method2(arg1) } method2(arg1) { return {\"asdf\":\"123\"} } }")
j.evaluateScript("var b = new Base123(); var handler = b.method1")
j.evaluateScript("handler(4)")?.toDictionary() //<-- expected ["asdf": "123"]
}
基本上我是用两种方法创建一个名为Base123的类。 method1调用method2。但是对method2的调用是未定义的。
有谁知道怎么做?
重新格式化类定义以便于阅读:
class Base123 {
method1(arg1) {
return this.method2(arg1)
}
method2(arg1) {
return {"asdf":"123"}
}
}
这个javascript定义有问题吗?
答案 0 :(得分:-2)
尝试将var handler = b.method1
替换为var handler = b.method1.bind(b)
。