我有这样的对象:
var example = {
test1: 10,
test2: 20,
test3: 30
}
出于某种原因,我想在没有test#
的情况下使用example
个变量,所以我像这样扩展了window
个对象(使用jQuery):
$.extend(window, window, example)
但是,每当此函数调用时,页面都会刷新。
还有一个问题,如果我尝试以同样的方式扩展document
,会发生一些错误:(在Chrome中)
错误:NAMESPACE_ERR:DOM异常14
为什么?有没有办法使用没有对象(命名空间)名称的变量?
答案 0 :(得分:7)
您的$.extend
来电与此相同:
window.location = window.location;
这将刷新页面。
$.extend
函数实质上将所有属性(使用简单赋值)从第二个参数复制到第一个参数,并返回(更新的)第一个参数。在您的第二个参数window
中,会有location
属性,当您为window.location
分配内容时,您会更改页面,如果新的和location
值是同样,你将刷新当前页面。
如果您要将example
中的所有媒体资源添加到window
,请执行以下操作:
$.extend(window, example);
至于“是否有任何方法可以使用没有对象(命名空间)名称的变量?”去,只需将您的变量添加为window
的属性,您就可以在没有前缀的情况下访问它们:
window.where_is = "pancakes house?";
alert(where_is);