Sim*_*mon 3 javascript javascript-events
而是一个关于javascript事件的技术问题:
为什么
window.onmousewheel = console.log;
Run Code Online (Sandbox Code Playgroud)
扔了Uncaught TypeError: Illegal invocation,而
window.onmousewheel = function (e) {console.log(e); };
Run Code Online (Sandbox Code Playgroud)
按预期工作并将事件打印为字符串?为什么console.log在分配时window.onmousewheel,不仅仅使用lambda表达式之类的参数调用?
西蒙
当没有显式接收器调用函数时,接收器window(或更一般地说是全局对象)或undefined取决于严格性.引用的函数console.log要求其this值是实例Console.
它通常不在用户代码中完成,但您也可以保护您的方法免受泛型调用:
MyClass.prototype.method = function() {
if( !( this instanceof MyClass ) ) {
throw new Error("Invalid invocation");
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |