2014-11-04 38 views
-4

我有這樣的代碼:如何在JavaScript代碼中定義變量w?

var w; 
if (window.eventListener) w.addEventListener('load', startSlideShow, false); 
    else w.addEventListener('onload', startSlideShow); 

首先是沒有變種w的 所以當我瀏覽的網頁,做檢查elemnt我在紅看到一個消息說:

未捕獲的ReferenceError:W後,我增加了行變種w是不就行定義現在181

; 我做了一次檢查elemnt現在我在紅看到:

遺漏的類型錯誤:無法讀取的不確定

財產「的addEventListener」所以我想只是在做無功瓦;是不正確的。 那麼我如何定義變量w?

+0

w是什麼?是否意味着「窗口」?爲什麼不使用'window'? – Andy 2014-11-04 14:53:56

+1

'var w = window;' – 2014-11-04 14:54:22

+3

@Andy:因爲他可能從某處複製粘貼了這段代碼,但不知道它是如何工作的。 – 2014-11-04 14:55:03

回答

6
var w = some_value_which_needs_to_be_an_object_with_an_addEventListener_method; 

由於您正在使用可能是圖像,iframe或可能是主窗口對象的加載事件。

+0

哈哈!愛它.. – Flosculus 2014-11-04 14:54:37

1

相反的w,使用window

if (window.eventListener) 
    window.addEventListener('load', startSlideShow, false); 
else 
    window.addEventListener('onload', startSlideShow); 
0

爲了說明錯誤的性質。

隨着var w;變量w只聲明,或一組變量,但它也是null(或undefined,兩者的JavaScript喜歡...)。

使用.addEventListener將變量視爲對象的引用,因爲您試圖調用將成爲對象的方法。

但是由於變量分配了「nothing」(提供的值),因此您試圖在不存在的對象上調用方法,通常會導致像Java這樣的語言爲NullPointerException

也就是說,使用/訪問不存在的東西的屬性/方法。就像期待從空盒子裏拿東西一樣。

+0

'var w' - >'w == undefined'。不是'null'。 – Cerbrus 2014-11-04 15:04:07

+0

@Cerbrus在JavaScript中遇到'null'和'undefined'之間的區別嗎? – Flosculus 2014-11-04 15:05:20

相關問題