JavaScript 自定义方法

问题描述 投票:0回答:3

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

这是我开始的代码:

function CustomColor() {

}

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

}

这是非常基础的,但我对 JavaScript 很陌生。 谢谢。

javascript javascript-objects
3个回答
4
投票

像这样使用自定义颜色:

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')

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 元素创建自定义属性。不建议为 DOM 元素的

prototype
创建自定义属性,因为并非所有浏览器都支持这些属性。


0
投票

您必须在函数或对象内使用名称 local。

let ob = {
    theif : 'Davron',
    height : 1.7,
    color : {
        hair : 'qora',
        esee : 'white',
    },

    methodName: function () {
        return 'This is medthod';
    }
}

console.log(ob.methodName());
© www.soinside.com 2019 - 2024. All rights reserved.