js 中用自己定义的函数覆盖内建函数这种行为应该叫什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
rv54ntjwfm3ug8
V2EX    Javascript

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

  •  
  •   rv54ntjwfm3ug8 2022-02-27 23:56:34 +08:00 3798 次点击
    这是一个创建于 1323 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    24 条回复    2022-03-01 08:59:11 +08:00
    westoy
        1
    westoy  
       2022-02-28 00:00:27 +08:00   1
    monkey patch?

    prototype hack?

    prototype pollution?
    maocat
        2
    maocat  
       2022-02-28 00:19:25 +08:00 via iPhone
    重写
    thinkershare
        3
    thinkershare  
       2022-02-28 00:32:31 +08:00   1
    shim ???
    0o0O0o0O0o
        4
    0o0O0o0O0o  
       2022-02-28 00:33:53 +08:00 via iPhone
    hook
    thinkershare
        5
    thinkershare  
       2022-02-28 00:35:00 +08:00
    拦截方法一般还可以使用 proxy 代理, 你覆盖内置的函数的目的是什么? 不同场景下覆盖或者补充缺失函数的叫法是不同的
    Biwood
        6
    Biwood  
       2022-02-28 02:31:04 +08:00   1
    Function Hijacking
    函数劫持
    gzlock
        7
    gzlock  
       2022-02-28 04:03:21 +08:00
    ntr (确定
    kof21411
        8
    kof21411  
       2022-02-28 07:18:37 +08:00
    这种行为不是叫 hook 吗?
    cmdOptionKana
        9
    cmdOptionKana  
       2022-02-28 08:05:58 +08:00
    其实只是简单的 swallow, 内层的函数名 /变量名覆盖外层的。
    free9fw
        10
    free9fw  
       2022-02-28 08:34:44 +08:00
    aop
    RickyC
        11
    RickyC  
       2022-02-28 09:23:33 +08:00
    函数名已存在
    yunyuyuan
        12
    yunyuyuan  
       2022-02-28 09:29:33 +08:00   2
    ntr
    shintendo
        13
    shintendo  
       2022-02-28 10:05:23 +08:00
    叫什么取决于你这么做的目的
    duduaba
        14
    duduaba  
       2022-02-28 10:09:00 +08:00
    参考 JAVA ,重载多态
    hoythan
        15
    hoythan  
       2022-02-28 10:15:53 +08:00
    原型重构 原型重写 方法重构 方法重写 函数重构 函数重写 代码重构 代码重写 脚本重构 脚本重写 js 重构 js 重写
    tyx1703
        16
    tyx1703  
       2022-02-28 10:20:04 +08:00 via iPhone
    watcher
        17
    watcher  
       2022-02-28 11:09:09 +08:00
    ntr...
    mascteen
        18
    mascteen  
       2022-02-28 11:19:18 +08:00 via Android
    overloading
    rioshikelong121
        19
    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
        20
    shenyu1996  
       2022-02-28 11:26:56 +08:00
    AOP 面向切面编程?
    gca
        21
    gca  
       2022-02-28 11:41:47 +08:00
    上怎有一正回覆

    curry function
    ethusdt
        22
    ethusdt  
       2022-02-28 14:32:31 +08:00
    polyfill ? 应该不是吧..
    ragnaroks
        23
    ragnaroks  
       2022-02-28 19:02:46 +08:00
    override
    yulon
        24
    yulon  
       2022-03-01 08:59:11 +08:00
    @gca 柯里化魔怔了是吧,啥都是柯里化
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4252 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 04:10 PVG 12:10 LAX 21:10 JFK 00:10
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86