आप नहीं कर सकते। आपको किसी नामित फ़ंक्शन का उपयोग करना होगा या किसी भी तरह से संदर्भ को संग्रहीत करना होगा।
var handler;
function doSomethingWith(param) {
handler = function(){
document.write(param);
};
document.body.addEventListener('scroll', handler,false);
}
setTimeout(function() {
document.body.removeEventListener('scroll', handler ,false);
}, 3000);
सबसे अच्छा यह होगा कि इसे संरचित तरीके से किया जाए, ताकि आप विभिन्न हैंडलर की पहचान कर सकें और उन्हें हटा सकें। उपरोक्त उदाहरण में, आप स्पष्ट रूप से केवल अंतिम हैंडलर निकाल सकते हैं।
अपडेट करें:
आप अपना स्वयं का हैंडलर बना सकते हैं (:)):
var Handler = (function(){
var i = 1,
listeners = {};
return {
addListener: function(element, event, handler, capture) {
element.addEventListener(event, handler, capture);
listeners[i] = {element: element,
event: event,
handler: handler,
capture: capture};
return i++;
},
removeListener: function(id) {
if(id in listeners) {
var h = listeners[id];
h.element.removeEventListener(h.event, h.handler, h.capture);
delete listeners[id];
}
}
};
}());
तब आप इसका उपयोग कर सकते हैं:
function doSomethingWith(param) {
return Handler.addListener(document.body, 'scroll', function() {
document.write(param);
}, false);
}
var handler = doSomethingWith('Test. ');
setTimeout(function() {
Handler.removeListener(handler);
}, 3000);
डेमो