但是,我无法理解以下MDN文档
The Window.console read-only property returns a reference to the
Console object,which provides methods for logging information to the
browser’s console.
(https://developer.mozilla.org/en-US/docs/Web/API/Window/console)
特别是:
>我无法做出真正的Window
接口的头部或尾部,但它似乎与全局窗口属性不同
>测试显示(在当前的Chromium和Firefox中)window.console确实可以覆盖事件,尽管它似乎与我在文档中读到的内容相矛盾. (这种覆盖的一个例子提供了this answer;即使注释对象有
You can’t use window.console = { … } because window.console is a
read-only property ! – Luillyfe Feb 23 at 21:28
Window.console或window.console的只读权限是什么?
解决方法
- I cannot make head’s or tails’ of what actually is the
Window
interface,but it seems to be different to the global window property
界面窗口定义浏览器中窗口对象上可用的属性和方法,可通过默认窗口全局变量获得.您可以将其视为:var window = new Window()虽然当然不是真的.
- … What is it with the read-only-ness of
Window.console
orwindow.console
?
它不是只读的.
>理论:Window
interface根本没有提到控制台,但console
spec说它是窗口上暴露的命名空间对象. WebIDL规范说namespace objects默认是可写,可配置和不可枚举的. (谢谢sideshowbarker指出那个!)
>练习:它在我尝试过的每个浏览器上都可写(Chrome,Firefox,Safari,IE9,IE11,Edge).在除了IE11之外的所有这些中,控制台是对象窗口所指的“自有”属性,并且分配给它工作(在松散和严格模式下). (IE11是奇怪的鸭子:当devtools关闭时,控制台不是窗口的属性,但是它的类型是“对象”,如果你记录String(控制台),结果是“[object Console]”.但是当devtools是打开,它是窗口的自有属性而不是只读.)
我已经更新了MDN页面,删除了该句子的“只读”部分.
我不是说用其他东西替换控制台是一个好主意. :-)但是请注意,如果你选中了“显示控制台”选项(默认情况下是这样),那么SO自己的堆栈片段就是这样做的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。