如何在javascript代码中定义变量w?
我有以下代码:如何在javascript代码中定义变量w?,javascript,html,Javascript,Html,我有以下代码: var w; if (window.eventListener) w.addEventListener('load', startSlideShow, false); else w.addEventListener('onload', startSlideShow); 首先,没有var w; 因此,当我浏览页面并检查elemnt时,我看到一条红色消息,上面写着: 未捕获引用错误:未在第181行定义w 现在,在我添加了var w行之后; 我再次检查了elemnt,现在我看
var w;
if (window.eventListener) w.addEventListener('load', startSlideShow, false);
else w.addEventListener('onload', startSlideShow);
首先,没有var w;
因此,当我浏览页面并检查elemnt时,我看到一条红色消息,上面写着:
未捕获引用错误:未在第181行定义w
现在,在我添加了var w行之后;
我再次检查了elemnt,现在我看到红色:
未捕获的TypeError:无法读取未定义的属性“addEventListener”
所以我猜只是做var w;这不是正确的方法。
那么如何定义变量w呢
var w = some_value_which_needs_to_be_an_object_with_an_addEventListener_method;
由于您使用的加载事件可能是图像、iframe或主窗口对象。而不是
w
,请使用window
:
if (window.eventListener)
window.addEventListener('load', startSlideShow, false);
else
window.addEventListener('onload', startSlideShow);
解释错误的性质 具有
var w
变量w
仅被声明或设置为一个变量,但它也是null
(或未定义的
,以javascript喜欢的为准…)
使用.addEventListener
将变量视为对象的引用,因为您正试图调用潜在对象的方法
但是,由于变量赋值为“nothing”(提供的值),因此您试图对不存在的对象调用方法,这通常会导致像Java这样的语言成为NullPointerException
也就是说,使用/访问某个不存在的属性/方法。就像期望从一个空盒子里得到什么一样。什么是
w
?是要成为窗口
?为什么不直接使用window
?@Andy:因为他可能是从某个地方复制粘贴了这段代码,而不知道它是如何工作的。@SergioTulentsev:将全局变量存储在一个新变量中,然后使用它?什么?@Cerbrus:这样脚本的其余部分现在就可以解析这个名称了。@SergioTulentsev:没有理由到处创建随机变量。var w
-->w==undefined
。不null
@Cerbrus在javascript中,您是否遇到了null
和未定义的之间的差异?