Javascript 为什么$.extend(window、window、someobject)会触发页面刷新?

Javascript 为什么$.extend(window、window、someobject)会触发页面刷新?,javascript,jquery,Javascript,Jquery,我有这样的目标: var example = { test1: 10, test2: 20, test3: 30 } 出于某种原因,我想使用test#变量而不使用example,因此我扩展了window对象,如下所示(使用jQuery): 但是,每当调用此函数时,页面都会刷新 还有一个问题,如果我尝试以同样的方式扩展文档,就会出现如下错误:(在Chrome中) 错误:名称空间错误:DOM异常14 为什么呢?有没有办法使用没有对象(名称空间)名称的变量?您的$。exten

我有这样的目标:

var example = {
    test1: 10,
    test2: 20,
    test3: 30
}
出于某种原因,我想使用
test#
变量而不使用
example
,因此我扩展了
window
对象,如下所示(使用jQuery):

但是,每当调用此函数时,页面都会刷新

还有一个问题,如果我尝试以同样的方式扩展
文档
,就会出现如下错误:(在Chrome中)

错误:名称空间错误:DOM异常14


为什么呢?有没有办法使用没有对象(名称空间)名称的变量?

您的
$。extend
调用执行以下等效操作:

window.location = window.location;
这将刷新页面

该函数实质上是将第二个参数到最后一个参数的所有属性(使用简单赋值)复制到第一个参数,并返回(更新的)第一个参数。在第二个参数中,
window
,将有
location
属性,当您为
window.location
分配内容时,您将更改页面,如果新的
位置值和旧的
位置值相同,您将刷新当前页面

如果要将
示例
中的所有属性添加到
窗口
,只需执行以下操作:

$.extend(window, example);
至于“有没有办法使用没有对象(名称空间)名称的变量?”这句话,只需将变量添加为
窗口的属性,就可以访问它们,而无需前缀:

window.where_is = "pancakes house?";
alert(where_is);

例如:

为什么要传递
窗口两次?如果您只执行
$.extend(窗口,示例)
,它是否有效?这是一个很好的答案。我忘记使用
$.extend(窗口,示例)
。不管怎样,我得到了一些新信息。非常感谢。
window.where_is = "pancakes house?";
alert(where_is);