有没有一种方法可以无约束地调用obj的inc?可以不绑定地调用对象的成员方法吗?
function callIt(callback){
callback();
}
var obj = {
count: 0,
inc: function(){
this.count++;
}
};
callIt(obj.inc.bind(obj));
obj.count;// 1
问题与我有关,因为较旧的IE版本不支持方法绑定。
有没有一种方法可以无约束地调用obj的inc?可以不绑定地调用对象的成员方法吗?
function callIt(callback){
callback();
}
var obj = {
count: 0,
inc: function(){
this.count++;
}
};
callIt(obj.inc.bind(obj));
obj.count;// 1
问题与我有关,因为较旧的IE版本不支持方法绑定。
你可以使用一个函数值
callIt(function() { obj.inc(); });
那么为什么不只是使用[一个垫片]绑定? – user2864740
@ user2864740 OP明确表示,由于IE限制,他们无法使用 – JaredPar
看一看[如何进入回调中正确的'this' /背景?](http://stackoverflow.com/q/20279484/218196 )替代解决方案。 –
我的建议是使用['es5-shim.js'](https://github.com/es-shims/es5-shim)(或同等版本),然后继续处理更有趣的问题。或者,可以在[MDN的Function.bind文档](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/Bind)中找到填充/填充填充 – user2864740
这是一个相关的来源与有趣的答案,这个主题:http://stackoverflow.com/questions/9644044/javascript-this-pointer-within-nested-function – Blauharley