javascript - 实现原型(prototype)方法

标签 javascript

如果我在 String 上实现了一个方法 x,例如:

String.prototype.x = function (a) {...}

然后新版本的 javascript 实际上实现了 x 方法,但在另一种方式上,要么返回与我的实现不同的东西,要么返回比我的实现更多/更少参数的函数。这会破坏我的实现并覆盖它吗?

最佳答案

您将覆盖默认实现。

任何使用它的代码都将使用您的代码。

有人提议 scoped extension methods它被拒绝了,因为在 JS 引擎中实现它的计算成本太高。有人讨论了解决该问题的新提案(协议(protocol))。 ES6 符号也将为您提供一种解决方法(但语法丑陋)。

然而,这不是重点 - 这是一个没有人会告诉您的有趣事实。

没有人会在 String.prototype 上实现一个名为 x 的方法

您可以实现它并摆脱它。说真的,prollyfillingpolyfilling 是许多用例的可行、富有表现力和有趣的解决方案。如果您不是在编写库,我认为这是可以接受的。

关于javascript - 实现原型(prototype)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19965630/

相关文章:

javascript - 将运行时参数值发送到 jQuery 的 ON 方法?

javascript - bind() : You are binding a component method to the component. React 会自动为你做这个吗?

javascript - Firebase,两个项目相同的数据库?

javascript - addEventListener "onmouseover"不处理表格单元格

javascript - 数据表警告 : table id=table_especie - Requested unknown parameter '0' for row 0, 第 0 列

javascript - 谷歌地图 - 标记不会移动,直到我手动移动一次

javascript - 匿名 JavaScript 函数的括号

javascript - 如何在正则表达式中使用变量?

javascript - 使用纯 JavaScript 中的 setTimeout 方法向 div 添加一些过渡

javascript - 鼠标悬停时图像预览 JavaScript