3

サファリでアラートが2回定義されているのはなぜですか?

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
4

1 に答える 1

0

これは、Safariでは、プロトタイプとウィンドウインスタンスの関数としてアラートを設定することを意味します。

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

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

一方、他のブラウザでは、プロトタイプの宣言のみを実行していました。

于 2013-03-11T04:03:31.690 に答える