을 콜백, 다시 그것을 제거 할 그래서 같은 익명 함수 :
callbacks.add(function(){ console.log('Hello anonymous world') });
callbacks.fire(); // logs 'Hello anonymous world'
잘 보이는, 하지만 난 더 이상 기능을 제거 할 수 없습니다 :
callbacks.remove(function(){ console.log('Hello anonymous world') });
callbacks.remove();
callbacks.fire(); // still logs 'Hello anonymous world'
이를 극복 할 방법이 있습니까? OP의 요청에 따라
함수는 포인터로 식별됩니다. 익명 함수에 대한 포인터가 없으므로 제거 할 함수를 알리기 위해'remove()'에 전달할 것이 없습니다. 중복이 다른 포인터를 가지고 있기 때문에 단순히 중복 함수를 전달하는 것은 그것을 수행하지 않습니다. 함수에 변수를 할당 한 다음 그 변수를'remove()'에 전달해야합니다. –
아마도 익명 함수를 감지하고 변수를 할당하는 방법이있을 것입니다. 그런 다음 익명의 다른 익명을 삭제할 때 동일한 익명인지 확인하십시오. – Kriem
아니요. 포인터가 다르므로 절대로 같지 않습니다. –