-1
私はiOSのJavaScriptCoreフレームワークを使用していますが、別のメソッドを呼び出すJavaScript(es6)クラスを取得するのが難しいです。ここに私の遊び場のコードがあります。JavaScriptクラスのメソッドを別のメソッドから呼び出す方法は?
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"]
}
私は基本的に2つの方法でBase123というクラスを作成しています。 method1はmethod2を呼び出します。ただし、method2の呼び出しは未定義です。
誰でもこれを行う方法を知っていますか?読みやすくするために、クラス定義を再フォーマット
:
class Base123 {
method1(arg1) {
return this.method2(arg1)
}
method2(arg1) {
return {"asdf":"123"}
}
}
はこのjavascriptの定義に何か問題はありますか?
ありがとうKevin、私はクロージャで呼び出しをラップすることで解決できました。 'var handler =(arg1)=> b.method1(arg1)' – DerrickHo328