在所有全局对象原型上设置方法

母狮100

我想知道是否有可能将功能属性添加到所有本机对象原型(即此MDN页面上的所有内容)。

例如,我可以将此简单函数设置为Array.prototype,它将正常工作:

Array.prototype.tap = function (fn) {
  return fn(this);
};

[1, 2, 3, 4, 5].tap(console.log)

但是,如果我希望此函数在任何原型上执行怎么办?例如:

{ name: 'Jonathan', age: 19 }.tap(console.log); // { name: 'Jonathan', age: 19 }
new Map([['1 + 1', 2], ['2 + 2', 4]]).tap(console.log); // Map(2) {"1 + 1" => 2, "2 + 2" => 4}
'Hello World'.tap(console.log); // Hello World
true.tap(console.log); // true
new Date().tap(console.log); // Tue Oct 06 2020 21:09:33 GMT-0400 (Eastern Daylight Time)

我可以给函数分配某种“全局原型”吗?还是我必须手动将其设置为每个本机原型?

一定的表现

您可以穿上它Object.prototype

Object.prototype.tap = function (fn) {
  return fn(this);
};

[1, 2, 3, 4, 5].tap(console.log)
new Date().tap(console.log);

这将允许几乎所有对象访问该方法。唯一的例外是继承自的对象Object.prototype(这种情况很少见,必须有意识地做到):

Object.prototype.tap = function (fn) {
  return fn(this);
};

const obj = Object.create(null);
obj.tap(console.log);

但这只是出于好奇的缘故。请不要在真实代码中使用此代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在所有变量上添加原型方法

来自分类Dev

是否可以在所有QLabel上全局设置textInteractionFlags?

来自分类Dev

在所有后端Yii2上全局设置参数变量

来自分类Dev

为所有对象属性设置原型

来自分类Dev

为所有对象属性设置原型

来自分类Dev

在所有视图中设置全局常数

来自分类Dev

在Spark中,在所有工作线程上拥有静态对象的正确方法是什么?

来自分类Dev

在所有.htaccess文件上设置chmod

来自分类Dev

在所有.htaccess文件上设置chmod

来自分类Dev

如何在所有tty shell上设置别名?

来自分类Dev

在所有TabPage选项卡上设置DataGridViewCheckBoxCell

来自分类Dev

在所有视图控制器上显示对象

来自分类Dev

OpenGL阴影贴图在所有对象上均相同

来自分类Dev

Java上的Spark-在所有worker上拥有静态对象的正确方法是什么

来自分类Dev

在所有继承的类上隐式调用方法

来自分类Dev

在所有服务方法上使用属性(IOperationBehavior)

来自分类Dev

AutoMapper可以在所有字段上应用通用/全局格式化程序?

来自分类Dev

可以在全局所有QLabel上设置textInteractionFlags吗?

来自分类Dev

您可以在所有云代码方法中使用全局util函数吗?

来自分类Dev

您可以在所有云代码方法中使用全局util函数吗?

来自分类Dev

列出Javascript对象的所有原型属性

来自分类Dev

javascript引擎如何在具有原型的对象上设置属性,而该对象具有该属性的设置器?

来自分类Dev

启动并从文件加载信息后,如何创建可在所有MVC和WEB API中访问的全局对象

来自分类Dev

始终在所有页面上保持全局 <View>

来自分类Dev

Chrome / Firefox一次在所有javascript onclick事件上设置断点

来自分类Dev

播放2.3 Java-在所有响应上设置标头

来自分类Dev

Elasticsearch-在所有字段上设置默认分析器

来自分类Dev

在所有事物上设置最大高度-最佳做法?

来自分类Dev

EF Core Fluent API,在所有实体上设置IsRequired以生成非空的db列

Related 相关文章

  1. 1

    在所有变量上添加原型方法

  2. 2

    是否可以在所有QLabel上全局设置textInteractionFlags?

  3. 3

    在所有后端Yii2上全局设置参数变量

  4. 4

    为所有对象属性设置原型

  5. 5

    为所有对象属性设置原型

  6. 6

    在所有视图中设置全局常数

  7. 7

    在Spark中,在所有工作线程上拥有静态对象的正确方法是什么?

  8. 8

    在所有.htaccess文件上设置chmod

  9. 9

    在所有.htaccess文件上设置chmod

  10. 10

    如何在所有tty shell上设置别名?

  11. 11

    在所有TabPage选项卡上设置DataGridViewCheckBoxCell

  12. 12

    在所有视图控制器上显示对象

  13. 13

    OpenGL阴影贴图在所有对象上均相同

  14. 14

    Java上的Spark-在所有worker上拥有静态对象的正确方法是什么

  15. 15

    在所有继承的类上隐式调用方法

  16. 16

    在所有服务方法上使用属性(IOperationBehavior)

  17. 17

    AutoMapper可以在所有字段上应用通用/全局格式化程序?

  18. 18

    可以在全局所有QLabel上设置textInteractionFlags吗?

  19. 19

    您可以在所有云代码方法中使用全局util函数吗?

  20. 20

    您可以在所有云代码方法中使用全局util函数吗?

  21. 21

    列出Javascript对象的所有原型属性

  22. 22

    javascript引擎如何在具有原型的对象上设置属性,而该对象具有该属性的设置器?

  23. 23

    启动并从文件加载信息后,如何创建可在所有MVC和WEB API中访问的全局对象

  24. 24

    始终在所有页面上保持全局 <View>

  25. 25

    Chrome / Firefox一次在所有javascript onclick事件上设置断点

  26. 26

    播放2.3 Java-在所有响应上设置标头

  27. 27

    Elasticsearch-在所有字段上设置默认分析器

  28. 28

    在所有事物上设置最大高度-最佳做法?

  29. 29

    EF Core Fluent API,在所有实体上设置IsRequired以生成非空的db列

热门标签

归档