2014-04-27 1 views
0

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); 
}); 

답변

1

Function#bind()

그래서 이런 식으로 뭔가 :

this.listenTo(foo, 'event', function() { 
    this.trigger('change'); 
}.bind(this)); 

this.listenTo(foo, 'event', function(bar) { 
    this.add(bar); 
}.bind(this)); 
1

은 (Especialy는 내가 많이 바인딩에 생각이),하지만 어떻게 이런 관하여 : 바인드 polyfill를 들어

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)); 

that를 참조하십시오.

+0

대, 덕분에 그 링크에 대한 많은! – Till