对的啊。
chrome的location.reload方法会检查this是否location,不是就不执行:
location.reload.apply(window)
VM883:2 Uncaught TypeError: Illegal invocation
location.reload.apply(document)
VM883:2 Uncaught TypeError: Illegal invocation
location.reload.apply(document.body)
VM883:2 Uncaught TypeError: Illegal invocation
location.reload.apply(undefined)
VM883:2 Uncaught TypeError: Illegal invocation
location.reload.apply()
VM883:2 Uncaught TypeError: Illegal invocation
location.reload.apply(location) // ok
location.reload.bind(location)() // ok
【 在 eGust (十年) 的大作中提到: 】
: 然而并不对啊,this 啥取决于 caller 的 this 是啥。首先 browser 里没有 global,其次没有在 event callback 里用 window 当 this 的习惯。按照 dom 习惯是 onChange,那么相当于 location.reload.call(storage.onChange)
--
FROM 116.234.18.*