javascript - es的箭头函数做参数
PHP中文网
PHP中文网 2017-04-11 12:39:49
[JavaScript讨论组]

最近看vuex的购物车案例疑惑不解

其中红色标出的_products和products在这起的什么作用,第一幅图中,箭头函数加上()并且带参数,那么actions中调用的时候参数products是什么??求解。。。。
感谢各位了

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
大家讲道理

修改一下,有看错的地方。等下来补充。
其实就是

setTimeout(function(){
    cb(_products)
},100)

setTimeout的回调函数里调用了一个函数cb

下方的也一样啊,下面是转es5之后的。

function getAllProducts(_ref) {
  var commit = _ref.commit;
  shop.getProducts(function (products) {
    commit(types.RECEIVE_PRODUCTS, { products: products });
  });
}

按照流程简化下

getProducts(a){
    setTimtout(function(){
        a(_p)
    },100)
}
getProducts(function(p){
    commit(x,p)
})

合并下再简化下相当于

(getProducts(a){
//a = function(p){commit(x,p)}
    setTimeout(function(){
        (function(p){commit(x,p)})(_p)
    },100)
})()
黄舟
() => cb(_products)

等价于

(function () {
    return cb(_products);
}).bind(this);

而标识符 _products 就是顶上定义的那个 const _products = ...

第二个是 ES 6 中对象属性名和变量名称相同时可以简写,所以

{ products }

相当于

{ products: products }

个人理解,不一定正确。

PHPz

_products是实参,products形参。
下面的箭头函数就是上面的cb

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号