2

我创建了一个自定义对象并向其添加了一个名为 changeColor 的方法,其中包含一个属性。这个想法是当我将此方法附加到任何 DOM 元素时,元素的所有内容颜色都必须更改。

这是我开始的代码:

function CustomColor() {

}

CustomColor.prototype.changeColor = function(color){
   //here what I have to specify.

}

这是非常基本的,但我是 JavaScript 新手。谢谢。

4

2 回答 2

3

像这样使用 CustomColor:

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')
于 2013-01-26T22:15:40.483 回答
1

我想这就是你要照顾的:

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 元素创建自定义属性。不建议为prototypeDOM 元素创建自定义属性,因为并非所有浏览器都支持这些属性。

于 2013-01-26T22:05:46.917 回答