比方说,我们有一个给定集合的一个实例(网址是集定义中指定的),例如:为什么在使用定义的函数时无法获得Backbone集合模型?
var collection = new SomeCollection(),
async = collection.fetch();
当我使用内部done
方法时工作得很好,像下面的一个匿名回调例如:
async.done(function(){
console.log('models are : ',collection.models)
});
但是,当我定义了一个全局函数,并尝试使用它,而不是以前完成回调,来组织代码点点,我得到一个空数组型号:
function done(collection){
console.log('models are : ',collection.models)
}
async.done(done(collection));
究竟是什么问题呢? 为什么在获取调用之前采取收集状态?
注:我试图使用也.bind
,.call
,.apply
但不工作!。
预先感谢您。
但是,如果我不提供收集作为参数,那么它没有定义内功能!所以我得到了很好的''Uncaught TypeError:无法读取属性'模型'的未定义(...)''错误 – Ismail
如果你想传递一些参数或这个值到回调函数,你可以利用[bind](https:/ /developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind)方法。我已经更新了我的答案 –
即使使用“bind”,“call”,“apply”,它也不能工作! – Ismail