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 · 3296 次点击
    这是一个创建于 1011 天前的主题,其中的信息可能已经有所发展或是发生改变。

    那个名词忘记了,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
    FaiChou
        22
    FaiChou  
       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   ·   实用小工具   ·   1004 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:21 · PVG 05:21 · LAX 13:21 · JFK 16:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.