【发布时间】:2019-11-30 03:40:06
【问题描述】:
通常我们可以这样做:
HTMLElement.prototype.myFunc = function(){...}
我的问题是,这样做可以吗:
var myObj = {
foo:function(){...},
bar:function(){...}
}
HTMLElement.prototype.myFunc = myObj;
上述方法确实有效,但这样做是否安全/有效?有什么优点/缺点? 任何建议都非常感谢。谢谢。
【问题讨论】:
-
我不确定你想用它做什么。我会说扩展内置对象虽然它是
prototype,但出于某种原因在性能和可维护性方面是一个坏主意。我在 SO 上找到了相关帖子:stackoverflow.com/questions/14034180/… -
不,将对象放在原型上根本不起作用。
-
请不要扩展原生对象。如果要扩展其他对象,可以使用
Object.assign(prototypeOrObjectOfYourObject, { foo(){}, bar(){} }。 -
我知道,自 2011 年以来,许多帖子都将原生元素原型设计视为不好的做法,2019 年,我想知道对这个主题的看法是否有任何改变或改进。或者是“读取过多堆栈溢出”的情况。
标签: javascript function object prototype prototyping