6

locationは、ウィンドウとドキュメントの所有プロパティです。

window.hasOwnProperty("location")
true

document.hasOwnProperty("location")
true

しかし、locationのプロトタイプをLocation.prototypeと比較しようとすると、Locationが定義されていないというエラーが発生しました。

LocationオブジェクトにLocationコンストラクターが表示されますが。

場所のプロトタイプオブジェクトは何ですか?

理想的には、Location.prototypeと、assignや他の2つのようなメソッドを確認できるはずです。

Chromeのバグ? ここに画像の説明を入力してください

4

2 に答える 2

4

リストされていても、プロトタイプが表示されない場合があります。

これを試して :

​var a = (function(){ // this is a closure protecting A
    var A = function(b){
        this.b = b;
    }
    return new A('test');
})();
console.log(a); // logs ▸A
console.log(A); // error, as A isn't defined

ブラウザを表示する理由はありませLocationん。そして確かに、それがグローバル名前空間を乱雑にする理由はありません。

于 2013-01-04T15:42:36.107 に答える
1

w3は、ロケーションオブジェクトを「インターフェイス」と呼びます。http://www.w3.org/html/wg/drafts/html/master/browsers.html#locationを参照してください。 そのため、プロトタイプを拡張することはおそらく無意味です。

Locationのプロトタイプを拡張したいのはなぜですか?あなたの起源の問題を解決するためのより良い方法はありますか?

于 2013-01-04T16:07:54.830 に答える