我想绑定'这个' Collection
原型对象的以下代码的上下文,但现在它引用了窗口对象。
到目前为止,我已尝试将函数定义包装为IIFE,但这并未改变上下文。
我的代码
Mongo.Collection.prototype.bulk = (function(){
var context = this; <------- should refer to the prototype's context and not the object 'bulk'
return {
insert: function(documents, options) {
},
update: function() {
},
upsert: function() {
}
};
})();
如何实现这一目标?
答案 0 :(得分:1)
RGraham的评论是正确的答案。
没有IIFE的需要。你可以做一个简单的prototype.fn = function() { var context = this; }
但是如果(无论出于何种原因)你不能这样做......那么你可以将你想用作context
的任何东西作为参数传递给IIFE:
Mongo.Collection.prototype.bulk = (function(context){
return {
insert: function(documents, options) {
},
update: function() {
},
upsert: function() {
}
};
})(Mongo.Collection.prototype);