我知道,擴展DOM元素是一個不好的做法。但我想知道是否可以將方法注入名稱空間下的特定元素。以下示例顯示了我的意思。DOM注射命名空間
var element = document.getElementById('my-element');
var inject = function (element) {
var nameSpace = element.nameSpace = {};
nameSpace.method1 = function() {
//do something
}
nameSpace.method2 = function() {
//do something
}
}
inject(element);
這是可以接受的嗎?
爲什麼需要這個?如果您想要將函數和一些數據與DOM元素關聯起來,那麼您總是可以編寫一個包裝器。 – Halcyon
潛在名稱衝突實際上是不擴展DOM元素的原因之一 - 但不是唯一的原因。這裏有關於這個話題的[更多](http://perfectionkills.com/whats-wrong-with-extending-the-dom/)。 – raina77ow
感謝您的鏈接。不過,我已經閱讀過。我問這是因爲這是添加其他方法和跨瀏覽器實現(如跨瀏覽器getElementByClassName)到單個元素的非常快速的方式。 –