如何将元素与对象 属性 一起使用,例如 element.myobj.prop

How to use element with object property like element.myobj.prop

如果我声明一个像

这样的对象
var obj =function(element){
return{
wide:element.clientWidth
}}

我必须像

那样声明
var fdiv=new obj(document.etc.etc.);

并像

一样打电话
fdiv.wide;

但这相当限制了我的代码。我必须为每个元素声明新的对象。 我的问题是如何将元素名称设置为动态的,以便能够使用 nodeI_want.obj.wideobj.nodeI_want.wide 或类似的任何东西来将我的 属性 与动态给定的节点一起使用。 note:clientWidth 道具。只是一个例子来阐明它将在我的代码中替换为我自己的属性。

您似乎想要延长 HTMLElement。正确的方法是将您的方法添加到 HTMLElementprototype

例如(我没有使用您的原始功能代码,因为它试图实现的目标非常模糊):

HTMLElement.prototype.getMyWidth = function() {
    return this.clientWidth;
};

HTMLElement

function ElementObj(element){
    this.element = element;
    this.width = this.element.offsetWidth;

    return this;
}

现在您可以:

var elem1 = new ElementObj(document.getElementById('div1'));
var elem2 = new ElementObj(document.getElementById('div2'));

其中 elem1 returns 对象:

{
    element: DOMElement
    width: 100
}