第五次修改和第六次修改听的就不太明白了。。。

第五次修改和第六次修改听的就不太明白了。。。

方法一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html>
<head>
    <title> 事件</title>
</head>
<body>
    <input type='text' id='num1' />
    <select id='operate'>
        <option value='+'>+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
    </select>
    <input type='text' id='num2' />
    <input type='button' value=' = ' onclick="count()" />
    <input type='text' id='result'/>
    <script type="text/javascript">
        function count() {
            /*此处写代码*/
            var all = {
                frist:document.querySelector('#num1'),
                second:document.querySelector('#num2'),
                last:document.querySelector('#result'),
                operate:document.querySelector('#operate')
            }
             
            if(isNaN(all.frist.value) || isNaN(all.second.value)){
                alert('请输入数字');
                throw new Error('不是数字');
            }
            switch(all.operate.value){
                case '+':
                    return all.last.value = +all.frist.value + +all.second.value;break;
                case '-':
                    return all.last.value = all.frist.value - all.second.value;break;
                case '*':
                    return all.last.value = all.frist.value * all.second.value;break;
                case '/':
                    return all.last.value = all.frist.value / all.second.value;break;
            }
        }
    </script>
</body>
</html>

方法二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html>
<html>
<head>
    <title> 事件</title>
</head>
<body>
    <input type='text' id='num1' />
    <select id='operate'>
        <option value='+'>+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
    </select>
    <input type='text' id='num2' />
    <input type='button' value=' = ' onclick="count()" />
    <input type='text' id='result'/>
    <script type="text/javascript">
        function count() {
            /*此处写代码*/
            var all = {
                frist:document.querySelector('#num1'),
                second:document.querySelector('#num2'),
                last:document.querySelector('#result'),
                operate:document.querySelector('#operate')
            }
             
            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;
                }
            }
 
            function outputResult(result){
                all.last.value = result;
            }
 
            if(isNaN(all.frist.value) || isNaN(all.second.value)){
                alert('请输入数字');
                throw new Error('输入的不是数字');
            }
             
            switch(operate.value){
                case '+':
                outputResult(operation.add(all.frist.value,all.second.value));break;
                case '-':
                outputResult(operation.subtract(all.frist.value,all.second.value));break;
                case '*':
                outputResult(operation.multiply(all.frist.value,all.second.value));break;
                case '/':
                outputResult(operation.divide(all.frist.value,all.second.value));break;
            }
        }
    </script>
</body>
</html>

老师第五次修改和第六次修改真听不明白了,这两种方法可以吗,感觉越老越绕

正在回答

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

2回答

同学你好,对于你的问题解答如下:

  1. 老师进行多次修改,主要是在原来的基础上进行封装,目的是为了将功能相似的代码封装成函数,方便后期调用,这里的项目比较小,同学可能体会不到这么做的好处,可以先跟着老师学习封装的思想,培养编码习惯。

    后面的组件化项目中,也会继续采用这种封装的思想去实现效果,到时候同学会更加清晰直观的感受到封装的好处了。

  2. 因为这样的写法并不存在语法错误,只不过是最后计算的结果不对而已,不会出现报错的

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

提问者 宝慕林3013065 2020-06-05 13:52:43

http://img1.sycdn.imooc.com//climg/5ed9dd9209c3049a06220476.jpg还有我这前这块复制完忘改了,全是+,为什么也不报错呢

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

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

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

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

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

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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