我想创建一个自定义方法,该方法将在每个HTML DOM对象内可用。我通过对“ Element”对象进行原型设计获得了预期的结果,但是,据我所读,这可能会导致很多问题。根据我的阅读,建议使用对象包装器。我该怎么做?
Element.prototype.myOwnMethod = function(param){
console.log(`${this} : ${param}`);
}
document.body.myOwnMethod('abc');
//[object HTMLBodyElement] : abc
[检索元素时,您可以首先调用一个函数,该函数返回一个既包含元素也您的自定义函数的对象,而使基本元素保持不变,如下所示:
const setText = function(newText) {
this.elm.textContent = newText;
}
const selectElement = selector => {
const elm = document.querySelector(selector);
return { elm, setText };
}
const a = selectElement('#a');
const b = selectElement('#b');
a.setText('123');
b.setText('456');
a.elm.style.color = 'green';
<div id="a">abc</div>
<div id="b">def</div>