嵌套函数调用的下划线_.bind()问题

时间:2011-12-07 14:46:15

标签: javascript backbone.js underscore.js

使用_.bindAll('addOne')后,addOne方法确实得到了正确的this,但它以某种方式中断了对此“绑定”方法中其他对象的函数调用:

/**
 * Add an element to the list
 */
addOne: function(tag) {

    // scope of this is correct
    var newClass = App.getViewClass('myClass')(someOptions) <-- scope inside App::getViewClass is wrong! overriden by current this

}

关于我如何以某种方式恢复正常行为的任何想法?

1 个答案:

答案 0 :(得分:1)

需要包裹我的吸气剂:

var myObject = new (App.getModelClass(model))(data);

因为我的范围不正确:

var myObject = new App.getModelClass(model)(data);