关键字: convention 、 unsafeBitCast .
// 演示闭包也可以当做JS的函数
// 1.声明闭包 JS函数真正对应的是NSBlock 所以在此处@convention(block)做block转换
let func2: @convention(block) (Int, Int) -> Int = { (num1, num2) in
return num1 + num2
}
// 2. 利用上下文 将func2置为JS中的函数
// 第一个参数是将闭包func2强转成AnyObject类型
// 第二个参数 闭包func2在JS中叫什么?
context.setObject(unsafeBitCast(func2, AnyObject.self), forKeyedSubscript: "block")
// 3.利用JS的代码实现该函数 该函数在JS中叫做block 所以需要调用block实现
let value3 = context.evaluateScript("block(4,5);")
print(value3)