我有两种情况我宣布var that = this
并且我想知道是否有一种更智能的方式来处理它,如call()
或apply()
所以我不必创建匿名函数吗?
var that = this;
this.listenTo( foo, 'event', function() {
that.trigger( 'change' );
});
var that = this;
this.listenTo( foo, 'event', function( bar ) {
that.add( bar );
});
答案 0 :(得分:1)
没有经过测试(特别是我认为这很有意义),但是这样怎么样:
this.triggerFn = function(ev) {
return function() {
this.trigger(ev);
}.bind(this);
}.bind(this);
this.addFn = function() {
return function(bar) {
this.add(bar);
}.bind(this);
}.bind(this);
this.listenTo( foo, 'event', this.triggerFn('change'));
this.listenTo( foo, 'event', this.addFn( bar ));
对于绑定polyfill,请参阅that。
答案 1 :(得分:1)
这样的事情:
this.listenTo( foo, 'event', function() {
this.trigger( 'change' );
}.bind(this));
this.listenTo( foo, 'event', function( bar ) {
this.add( bar );
}.bind(this));