2011-04-14 34 views
2

據我所知,事件不是EcmaScript語言的一部分,而是各種 引擎中的DOM規範和DOM實現的一部分。從關於DOM的閱讀中,我得到了這樣的印象: 事件是內置於引擎中的,並且您不能擁有自定義事件。另一方面,像jQuery這樣的框架提供了定義 自定義事件的函數。同樣,你可以在服務器端有自定義事件 JavaScript框架,比如Node.js.JavaScript中的* custom *事件如何實際執行?

我試着做一下,一些研究和唯一的結論,我可以 拿出的是「自定義」事件實際上是抽象 着真正的(內置)事件,該框架處理中隱藏 零件爲特定目的而創建的DOM。

這是正確的嗎?如果不是,用戶定義的Evers在JavaScript中如何實現 ?

+0

這可能很有趣:http://www.w3.org/TR/DOM-Level-3-Events/ – 2011-04-14 16:59:09

+0

你的猜測基本上是正確的。它可以是運行時系統(node.js,現代DOM)直接提供的東西,也可以是在一層JavaScript之上完成的(像jQuery或Prototype這樣的庫)。 – Pointy 2011-04-14 17:02:11

回答

3

DOM事件規範(v2,v3)提供了一種通過諸如createEventdispatchEvent等方法創建和分派事件的方法。這是一個DOM的東西,而不是JavaScript的東西。 (JavaScript的左右功能  —他們是closures,作爲第一類對象的各種功能等等  —使它真正容易實現通過觀察者風格圖案的事件,但是這是一個不同的主題。)

+0

嗨TJ,你有一個關於如何「通過觀察者風格模式實現事件」的鏈接? – 2011-05-01 16:43:23

+0

@Kay:你的意思是非DOM的東西? – 2011-05-01 16:51:34

0

This article深入探討這個問題,並提供了一個非常穩固的解決方案,圍繞現有的dom事件構建「抽象」。

相關問題