扫码关注官方订阅号
最近看vuex的购物车案例疑惑不解
其中红色标出的_products和products在这起的什么作用,第一幅图中,箭头函数加上()并且带参数,那么actions中调用的时候参数products是什么??求解。。。。感谢各位了
认证高级PHP讲师
修改一下,有看错的地方。等下来补充。其实就是
setTimeout(function(){ cb(_products) },100)
在setTimeout的回调函数里调用了一个函数cb。
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 = ...
_products
const _products = ...
第二个是 ES 6 中对象属性名和变量名称相同时可以简写,所以
{ products }
相当于
{ products: products }
个人理解,不一定正确。
_products是实参,products形参。下面的箭头函数就是上面的cb
products
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
修改一下,有看错的地方。等下来补充。
其实就是
在
setTimeout的回调函数里调用了一个函数cb。下方的也一样啊,下面是转es5之后的。
按照流程简化下
合并下再简化下相当于
等价于
而标识符
_products就是顶上定义的那个const _products = ...第二个是 ES 6 中对象属性名和变量名称相同时可以简写,所以
相当于
个人理解,不一定正确。
_products是实参,products形参。下面的箭头函数就是上面的cb