推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Alexisused

JS function 作为参数,写法的疑惑

  •  
  •   Alexisused · Sep 5, 2016 · 2847 views
    This topic created in 3562 days ago, the information mentioned may be changed or developed.
    function add(x, y) {
      return x + y;
    }
    
    // 将函数赋值给一个变量
    var operator = add;
    
    // 将函数作为参数和返回值
    function a(op){
      return op;
    }
    a(add)(1, 1)
    

    最后调用时,按正常写法不是应该这样写吗: a(add(1, 1))? 为什么写成 a(add)(1, 1)也是可以得,这种写法怎么理解?

    2 replies    2016-09-05 17:03:25 +08:00
    palmers
        1
    palmers  
       Sep 5, 2016
    一般我调用函数都是 a(arg) ; add 函数由函数 a 返回,那 a(add) 不省略的就是 var fun = a(add) ; 然后 fun(1,1) 所以 才是 a(add)(1,1) ; a(add(1,1)) 这里传递给函数 a 函数就不是函数 add 了 而是 add 操作后的结果值 ,显然不是一个函数类型参数
    Alexisused
        2
    Alexisused  
    OP
       Sep 5, 2016
    @palmers 豁然开朗 谢谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5390 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 07:28 · PVG 15:28 · LAX 00:28 · JFK 03:28
    ♥ Do have faith in what you're doing.