如何将 js 函数传给 java/oc 作回调函数

cocos2d-x lua 可以做到将函数作为参数传给 java/oc,cocos2d-js 应该怎么做?
比如:

var func1 = function() {
var func2 = function(a, b) {
// do something here.
};
// 调用 java/oc 某个方法,并将 func2 作为参数传进去。
}

java/oc 中:
处理完某些异步操作后,执行 func2 作回调。

注:官网中的例子,是在 java 中使用 Cocos2dxJavascriptJavaBridge.evalString,但只能直接调用 js global context 中的方法,无法调用更小作用域的方法。比如无法调用 js 某个对象的方法,也无法使用闭包特性。

不知道有没有较好的解决方法?