在Swift中,如何调用JSContext.callWithArguments返回的Jscript对象的方法
In Swift, how to invoke method of Jscript object returned by JSContext.callWithArguments
我是 javascript 和 Swift 的新手。我正在编写一个 IOS 应用程序,它使用
JavaScript核心调用 javascript 函数,returns 对象。然后我如何使用 JavaScriptCore 调用返回对象的方法。
例如(我实际上并没有使用矩形),JavaScript 可能如下所示:
function Rectangle(l,w) {
this.l = l
this.w = w
function area() {
return l * w
};
}
function getRectangle(l,w) {
return new Rectangle(l,w)
}
然后,在调用 jsContext.evaluateScript(jsScriptSource) 之后,Swift 获取矩形对象的调用可能如下所示
var getRectangle = self.jsContext.objectForKeyedSubscript("getRectangle")
var rectangle: JSValue = getRectangle.callWithArguments([11,5])
然后如何调用返回矩形的 getArea 方法?
谢谢
很简单,对返回值使用invokeMethod
方法:
let result = rectangle.invokeMethod("getArea", withArguments: [])
您还需要修复 javascript 才能正常工作:
function Rectangle(l,w) {
this.l = l
this.w = w
this.getArea = function area() {
return l * w
};
}
我是 javascript 和 Swift 的新手。我正在编写一个 IOS 应用程序,它使用 JavaScript核心调用 javascript 函数,returns 对象。然后我如何使用 JavaScriptCore 调用返回对象的方法。
例如(我实际上并没有使用矩形),JavaScript 可能如下所示:
function Rectangle(l,w) {
this.l = l
this.w = w
function area() {
return l * w
};
}
function getRectangle(l,w) {
return new Rectangle(l,w)
}
然后,在调用 jsContext.evaluateScript(jsScriptSource) 之后,Swift 获取矩形对象的调用可能如下所示
var getRectangle = self.jsContext.objectForKeyedSubscript("getRectangle")
var rectangle: JSValue = getRectangle.callWithArguments([11,5])
然后如何调用返回矩形的 getArea 方法?
谢谢
很简单,对返回值使用invokeMethod
方法:
let result = rectangle.invokeMethod("getArea", withArguments: [])
您还需要修复 javascript 才能正常工作:
function Rectangle(l,w) {
this.l = l
this.w = w
this.getArea = function area() {
return l * w
};
}