javascript - 为什么 alert 在 safari 中定义了两次?

标签 javascript safari

为什么 alert 在 safari 中定义了两次?

Safari 5.1.7(7534.57.2)

window.hasOwnProperty('alert'); //true

var w = Object.getPrototypeOf(window);

w.hasOwnProperty('alert'); //true

其他浏览器:Chrome 24.0.1312.52 m,FireFox 18.0,IE 9.0.8112.16421CO,Opera 12.12 1707

window.hasOwnProperty('alert'); //false

var w = Object.getPrototypeOf(window);

w.hasOwnProperty('alert'); //true

最佳答案

这意味着在 Safari 中,他们将警报设置为原型(prototype)和窗口实例上的函数。

function Window() {
    this.alert = function() { //code here };
}

Window.prototype.alert = function() { //code here };

而在其他浏览器中,它们只会完成原型(prototype)声明。

关于javascript - 为什么 alert 在 safari 中定义了两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14305947/

相关文章:

javascript - 浏览器在使用 js 延迟加载时下载两倍的图像

ios - 当页面不在焦点时,Safari 由于空闲/不活动而丢弃 Web Socket 连接

PHP 文件作为 URL 失败视频流

html - 在一行中声明所有 CSS 背景属性——尤其是 background-size

iphone - iphone safari 中的背景图像未正确显示

javascript - 在 Backbone/Require 应用程序中使用 Router 和 ineriew 渲染嵌套 View

javascript - 使用 React 在客户端组件中发布和更新计数

javascript - 如何向express.js 页面添加 Angular ?

javascript - 内联导入导出组件在热重载时抛出错误

javascript - 如何使用javascript从字符串中删除特殊字符