2011-03-15 61 views

回答

8

沒有,Object被指定爲JavaScript的語言的一部分,而DOM是API只有在瀏覽器環境相關的,是用來「訪問和更新文檔的內容,結構和風格」 (W3C)

但是,該文提供的反對DOM對象擴展的原因之一仍然適用於擴展本機類型,如Object - 即碰撞的可能性。


包裝紙的對象指的是創建一個新對象引用原始,但是通過新的,包裝對象提供附加功能。

例如,而不是延伸的DOM元素對象與跨瀏覽器addClass功能是這樣的:

var element = document.getElementById('someId'); 
element.addClass = function (className) { 
    ... 
}; 

可以代替定義一個包裝函數:

var ElementWrapper = function (element) { 
    this.element = element; 
}; 

並添加功能到其原型:

ElementWrapper.prototype.addClass = function (className) { 
    ... 
}; 

而「包裹」元素ts是這樣的:

var element = document.getElementById('someId'); 
var wrapped = new ElementWrapper(element); 
wrapped.addClass('someClass'); 
+0

OH。好。謝謝。 :) – Kayla 2011-03-15 22:49:45