【发布时间】:2017-08-08 18:10:46
【问题描述】:
我正在使用 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 的类。方法 1 调用方法 2。但是对 method2 的调用是未定义的。
有人知道怎么做吗?
重新格式化类定义以使其更易于阅读:
class Base123 {
method1(arg1) {
return this.method2(arg1)
}
method2(arg1) {
return {"asdf":"123"}
}
}
这个 javascript 定义有问题吗?
【问题讨论】:
-
感谢凯文,我能够通过用闭包包装调用来解决它。
var handler = (arg1) => b.method1(arg1)
标签: javascript class methods ecmascript-6