6

location 是 window 和 document 的所有属性。

window.hasOwnProperty("location")
true

document.hasOwnProperty("location")
true

但是当我尝试将位置原型与 Location.prototype 进行比较时,我得到了位置未定义的错误。

虽然我可以在 Location 对象中看到 Location 构造函数。

定位的原型对象是什么?

理想情况下,我们应该能够看到 Location.prototype 及其上的方法,例如 assign 和其他两个。

铬错误? 在此处输入图像描述

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 回答