js 中用自己定义的函数覆盖内建函数这种行为应该叫什么?

2022-02-27 23:56:34 +08:00
 rv54ntjwfm3ug8

那个名词忘记了,Google 了好久也没找到,来问问 V 友。

3280 次点击
所在节点    JavaScript
24 条回复
westoy
2022-02-28 00:00:27 +08:00
monkey patch?

prototype hack?

prototype pollution?
maocat
2022-02-28 00:19:25 +08:00
重写
thinkershare
2022-02-28 00:32:31 +08:00
shim ???
0o0O0o0O0o
2022-02-28 00:33:53 +08:00
hook
thinkershare
2022-02-28 00:35:00 +08:00
拦截方法一般还可以使用 proxy 代理, 你覆盖内置的函数的目的是什么? 不同场景下覆盖或者补充缺失函数的叫法是不同的
Biwood
2022-02-28 02:31:04 +08:00
Function Hijacking
函数劫持
gzlock
2022-02-28 04:03:21 +08:00
ntr (确定
kof21411
2022-02-28 07:18:37 +08:00
这种行为不是叫 hook 吗?
cmdOptionKana
2022-02-28 08:05:58 +08:00
其实只是简单的 swallow, 内层的函数名 /变量名覆盖外层的。
free9fw
2022-02-28 08:34:44 +08:00
aop
RickyC
2022-02-28 09:23:33 +08:00
函数名已存在
yunyuyuan
2022-02-28 09:29:33 +08:00
ntr
shintendo
2022-02-28 10:05:23 +08:00
叫什么取决于你这么做的目的
duduaba
2022-02-28 10:09:00 +08:00
参考 JAVA ,重载多态
hoythan
2022-02-28 10:15:53 +08:00
原型重构 原型重写 方法重构 方法重写 函数重构 函数重写 代码重构 代码重写 脚本重构 脚本重写 js 重构 js 重写
tyx1703
2022-02-28 10:20:04 +08:00
watcher
2022-02-28 11:09:09 +08:00
ntr...
mascteen
2022-02-28 11:19:18 +08:00
overloading
rioshikelong121
2022-02-28 11:24:49 +08:00
肯定符合 Monkey-patch 的定义。Monkey-patch 是一种手段 /行为( https://en.wikipedia.org/wiki/Monkey_patch )。但是我觉得不算一种目的。毕竟没有人为了 Monkey patch 去 Monkey patch 。

就目的来说,Polyfill 是 Shim 的一种,目的是在不支持特定功能的 Browser 上实现对应的功能。
Ponyfill 是不提倡使用 Monkey-patch 来达到和 Polyfill 类似的目的。


简单来说, 如果是在老的浏览器上(ie6)实现 Number.isNaN,
Polyfill 会直接判断 Number.isNaN 函数是否存在,如果不存在就在 Number 的 prototype 上挂载 isNaN 这个方法。
Ponyfill 会提供包 /方法,让调用方去 require, 而不是修改原生对象的实现 /原型链。
shenyu1996
2022-02-28 11:26:56 +08:00
AOP 面向切面编程?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/836791

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX