为什么在safari中定义两次警报?

时间:2013-01-13 17:11:40

标签: javascript safari

为什么在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

1 个答案:

答案 0 :(得分:0)

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

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

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

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