非法调用是指在调用函数时使用了错误的参数或者错误的方式。例如,给出了错误的对象或者没有正确传递参数。
在给出的示例中,使用了addEventListener.call(xhr, "readystatechange", callback)
这样的调用方式,这是错误的。addEventListener
是EventTarget
对象的方法,不能使用.call()
来调用。
正确的方法是直接在xhr
对象上调用addEventListener
方法,如下所示:
xhr.addEventListener("readystatechange", callback);
这样就可以将readystatechange
事件与callback
函数绑定起来了。