能不能帮我捋一捋这段代码的逻辑

能不能帮我捋一捋这段代码的逻辑

     var operate = (function () {

      var operation = {

    add: function(num1, num2) {

    return +num1 + +num2;

    },

subtract: function(num1, num2) {

    return num1 - num2;

    },

multiply: function(num1, num2) {

    return num1 * num2;

    },

divide: function(num1, num2) {

    return num1 / num2;

    },

    addOperation: function (name, fn) {

    if (!operation[name]) {

    operation[name] = fn;

    }

    return operation;

    }

    };


      function operate(name, num1, num2) {

      if (!operation[name]) throw new Error('不存在名为' + name + '的运算方法!');

      return operation[name](num1, num2);

     }

    function operate(name) {

    if (!operation[name]) throw new Error('不存在名为' + name + '的运算方法!');

    return operation[name].apply(operation, [].slice.call(arguments, 1, arguments.length));

    }

    operate.addOperation = operation.addOperation;


    return operate;

     return function (name, num1, num2) {

      if (!operation[name]) throw new Error('不存在名为' + name + '的运算方法!');

      return operation[name](num1, num2);

     };


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,逻辑解答如图:

http://img1.sycdn.imooc.com//climg/5e0867b3092e92c111410782.jpg

http://img1.sycdn.imooc.com//climg/5e08680b0972078f14400772.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 迷失的小麦 提问者 #1
    最下面被注释掉的怎么能直接return?说是前面一个步骤的,有点晕
    2019-12-30 09:32:45
好帮手慕粉 2019-12-30 12:02:52

同学你好,同学是不是没有认真听课呢?代码是视频老师一步一步改进着写的,视频老师觉得使用return不合适,所以就换了别的方法,也就是老师第一次回答给同学讲的方法。因为外界要访问operate函数添加方法,所以就需要将其返回出去。在视频的5分40秒左右:https://class.imooc.com/lesson/790#mid=19872

建议同学思考下自己的学习方法哦,听视频老师讲课还是比较直接的,我们只能帮助同学解答部分的疑惑,重要的还是靠自己的。同学这样只会事倍功半呢。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师