2016-09-17 5 views
0

클래스 멤버가 제거하도록 호출 할 수 있습니다. 그래서 this.remove (arg)를 써서 호출한다. 나는이 함수가 필요한 이벤트의 버튼 테이블을 만들고있다.자체를 다시 생성하지 않는 루프에서 이벤트 처리기를 만들려면 어떻게해야합니까?

때문에 현재 코드는 모든 함수가 재현되고 반복에 분명이 나쁜 코드는

var me = this 
for (x iterations) { 
    button.addEventListener('click',function() { 
     me.remove(this) // <- document is passed via this. I need both contexts 
} 

입니다.

remove.call() 

내가 만들 때까지 새로운이 컨텍스트에 대한 액세스 권한이 없으므로 작동하지 않습니다.

언제든지 함수를 다시 작성하지 않는 것이 좋을까요?

+0

함수, 루프 반복 당 하나의 여러 사본을 만들 수 없습니다 목표인가? –

+0

'여기'가 정말로 당신이 원했던가? 버튼을 나타냅니다. –

+0

[Mcve]에서 M을 너무 많이 사용하여 (변경) M을 가져 갔다고 생각합니다. ** 실행 가능한 ** Stack Snippet ('<>'도구 모음 버튼)을 사용하면 좀 더 확장 할 수 있습니까? 너 뭘 하려구? –

답변

0

이 아니다 매우 당신이 요구하는지 분명하지만 당신은 루프에서 함수를 다시 방지 할 수 있습니다

var me = this; 
function removeButton() { 
    me.remove(this); 
} 
for (/*x iterations*/) { 
    button.addEventListener('click', removeButton); 
} 
+0

예를 들어 주셔서 감사합니다. 나는이 같은 기능을 정의하는 것이 포획과 같다고 생각했다. – awlnx