Javascript 增广函数.prototype

标签 javascript

我一直在阅读“javascript:好的部分”。

Function.prototype.method = function (name, func) {
     this.prototype[name] = func;
     return this;
};

示例用法是:

Number.method('integer', function () {
    return Math[this < 0 ? 'ceiling' : 'floor'](this);
});
document.writeln((-10 / 3).integer()); // -3

两个问题:

  1. “通过使用方法方法扩充 Function.prototype,我们不再需要输入 原型(prototype)属性的名称。那一点丑陋现在可以隐藏了。”这是什么意思?所以它节省了输入“.prototype.integer”?似乎不是特别重要。

  2. 我们扩充了 Function.prototype,听起来它是特定于函数的。 Number 是原生类型,我们是否应该扩充Object.prototype

最佳答案

  1. 是的。在这方面这是一个相当愚蠢的例子。

  2. 请记住,Javascript 类型是函数(例如,typeof Number == "function"),这更有意义。

关于Javascript 增广函数.prototype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188647/

相关文章:

javascript - 在 HTML 中加载多行文本(每 60 秒逐行)的最佳方法是什么?

javascript - AngularJs 如何用另一个数组元素过滤 ngRepeat

javascript - 运行 `npm install` 时是否可以覆盖本地 .npmrc ?

javascript - 将电话号码前缀的正则表达式限制为两个数字

javascript - Angular 4 图像 slider

JavaScript、html 和 React js。调用 this.state.filteredUsers.map 时出错((用户)

javascript - 为什么 window.location.search 是空的?

javascript - 过滤数组以进行预输入的最快方法

javascript - Node.js 中的对象构造函数列表

javascript - IE 窗口失去对使用任何 XMLHttpRequest 启动 Angular 应用程序的关注