Javascript 如何使用对象属性为element.myobj.prop的元素

Javascript 如何使用对象属性为element.myobj.prop的元素,javascript,oop,object,object-properties,Javascript,Oop,Object,Object Properties,如果我声明一个像 var obj =function(element){ return{ wide:element.clientWidth }} 我必须这样声明 var fdiv=new obj(document.etc.etc.); 打个电话 fdiv.wide; 但这相当限制了我的代码。我必须为每个元素声明新的obj。 我的问题是如何设置元素名dynamic,以便能够使用likenodeI_-want.obj.wide或obj.nodeI_-want.wide或类似的内容来对动态给定的

如果我声明一个像

var obj =function(element){
return{
wide:element.clientWidth
}}
我必须这样声明

var fdiv=new obj(document.etc.etc.);
打个电话

fdiv.wide;
但这相当限制了我的代码。我必须为每个元素声明新的obj。 我的问题是如何设置元素名dynamic,以便能够使用like
nodeI_-want.obj.wide
obj.nodeI_-want.wide
或类似的内容来对动态给定的节点使用我的属性。
注意:clientWidth道具。这只是一个示例,说明它将在我的代码中替换为我自己的属性。

您似乎想要扩展
HTMLElement
。正确的方法是将您的方法添加到
HTMLElement
prototype

例如(我没有使用您的原始函数代码,因为它试图实现的内容非常模糊):

现在您可以执行以下操作:

var elem1 = new ElementObj(document.getElementById('div1'));
var elem2 = new ElementObj(document.getElementById('div2'));
其中elem1返回对象:

{
    element: DOMElement
    width: 100
}

我不明白,为什么
wide
是元素的一个属性,如果它与
clientWidth
属性相同,为什么需要它?这只是一个例子,它可能是任何东西,你发布的是无效代码,没有意义,至少对我来说没有?这有帮助吗->因为它不应该起作用,目的是理解系统背后的逻辑@adeneo这正是我想要的,请你解释一下我们为什么使用原型以及如何回忆这一点,这是我们大多数人都会努力避免的,扩展本机构造函数/原型。@adeneo,我在考虑是否也要引用对这一技术的批评。然而,从纯JS的角度来看(无论DOM和浏览器如何),这是一种更好的方法,希望能引导OP走上正确的道路。@nikoss,prototype是Javascript的基本主题。尝试阅读更多关于主题的内容(例如:)@adeneo在本例中编写一个函数,该函数将返回node,并在该函数之后添加属性权限更好,例如(“#elem”).wide,以及为什么我们必须避免添加到本机构造函数中
var elem1 = new ElementObj(document.getElementById('div1'));
var elem2 = new ElementObj(document.getElementById('div2'));
{
    element: DOMElement
    width: 100
}