如何从另一个方法调用JavaScript类的方法?

时间:2017-08-08 18:10:46

标签: javascript class methods ecmascript-6

我正在使用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定义有问题吗?

1 个答案:

答案 0 :(得分:-2)

尝试将var handler = b.method1替换为var handler = b.method1.bind(b)

相关问题