zhoudaiyu
V2EX  ›  问与答

为啥钩子函数/回调函数的函数名通常都是 onFunc?

  •  1
     
  •   zhoudaiyu · Apr 24, 2021 via iPhone · 3128 views
  •   You need to sign in to view this topic
    This topic created in 2008 days ago, the information mentioned may be changed or developed.

    目前看 Python Java 好像都是这样命名的,特别是 JS,全屏幕的 onFOO onBAR...这是命名的一种约定吗?

    11 replies  •  2021-04-24 20:44:50 +08:00
    pabupa
        1
    pabupa  
       Apr 24, 2021 via Android
    为什么人们问题的时候,前面都是“为什么”呢?
    QingXuJiaZhi
        2
    QingXuJiaZhi  
       Apr 24, 2021
    这是英语问题,on 表示时间点,“当……的时候,就做什么” 的意思。
    7gugu
        3
    7gugu  
       Apr 24, 2021
    约定俗成的规则
    yolee599
        4
    yolee599  
       Apr 24, 2021 via Android
    因为这是英语语法的一部分
    Quarter
        5
    Quarter  
       Apr 24, 2021 via iPhone
    我觉得这个命名没啥问题,表示在什么的时候,但我一般不这么命名,我喜欢用干什么来命名函数,即使是这种监听回调
    otakustay
        6
    otakustay  
       Apr 24, 2021
    onXxx 适合作为参数、属性的命名,但你把一个实现命名成 onXxx 就不合适了
    function doWork(jobDescription, onFinish) <-- 合适

    const onFinish = () => console.log('Finish');
    doWork(currentJob, onFinish); <-- 不合适
    liuyiliuyi
        7
    liuyiliuyi  
       Apr 24, 2021 via Android
    raaaaaar
        8
    raaaaaar  
       Apr 24, 2021 via Android
    约定俗成+工具一般默认生成就叫这个,懒得改了
    samuraivll
        9
    samuraivll  
       Apr 24, 2021
    因为这些函数不是主动去 call 的,而是外部事件到达时被动执行的,
    ReferenceE
        10
    ReferenceE  
       Apr 24, 2021 via Android
    不指定编程语言的...哦,编程语言指定了
    那就
    Convention 吧
    lldld
        11
    lldld  
       Apr 24, 2021
    我的理解, 这不是语言的约定.

    JS 事件比较多, 一般事件的接口 onSomeEvent 比较好理解, 因为定义接口的时候, 事件要怎么被处理是未知的;
    如果这个接口是一种能力, 比如接口是 Printable, 那么接口方法用行为 print()比较好理解
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2504 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 11:53 · PVG 19:53 · LAX 04:53 · JFK 07:53
    ♥ Do have faith in what you're doing.