我创建了一个自定义对象,并向其中添加了一个名为“changeColor”的方法,并带有一个属性。这个想法是,当我将此方法附加到任何 DOM 元素时,元素的所有内容颜色都必须更改。
这是我开始的代码:
function CustomColor() {
}
CustomColor.prototype.changeColor = function(color){
//here what I have to specify.
}
这是非常基础的,但我对 JavaScript 很陌生。 谢谢。
像这样使用自定义颜色:
function CustomColor(element) {
this.element = element;
}
CustomColor.prototype.changeColor = function (color) {
this.element.style.color = color;
}
CustomColor 的新实例:
var element = new CustomColor(document.body);
element.changeColor('red');
您还可以扩展实际的 dom 元素,而不使用任何额外的类,如下所示:
Element.prototype.changeColor = function (color) {
this.style.color = color;
};
并像这样使用它:
document.body.changeColor('red')
我想这就是你正在寻找的:
var elem = document.getElementById('some_element'),
CustomColor = function (element) {
this.htmlElement = element;
};
CustomColor.prototype.changeColor = function (color) {
this.htmlElement.style.color = color;
return;
};
elem.customColor = new CustomColor(elem);
使用附加属性:
elem.customColor.changeColor('#00f');
获取托管 HTML 元素引用的唯一方法是将其作为参数传递给构造函数。但是,在
changeColor
中,您无法引用 CustomColor
的任何“私有”变量(包括其参数),因此您需要为要在 changeColor
中使用的所有属性创建一个“公共”属性。更多信息请访问MDN
jsFiddle的现场演示。
上面的代码仅为特定 HTML 元素创建自定义属性。不建议为 DOM 元素的
prototype
创建自定义属性,因为并非所有浏览器都支持这些属性。
您必须在函数或对象内使用名称 local。
let ob = {
theif : 'Davron',
height : 1.7,
color : {
hair : 'qora',
esee : 'white',
},
methodName: function () {
return 'This is medthod';
}
}
console.log(ob.methodName());