js的简易小计算器函数的问题

js的简易小计算器函数的问题

问题描述:

定义的点击函数实现不了加减乘除功能;求大佬帮忙,该如何改动,calc()怎么引用加减乘除四个函数?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input type="text" id="one" >
        <input type="button" value="加" onclick="calc(add)" >
        <input type="button" value="减" onclick="calc(sub)" >
        <input type="button" value="乘" onclick="calc(mul)" >
        <input type="button" value="除" onclick="calc(div)" >
        <input type="text" id="two" >
        =<input type="text" id="result" >
        
        <script type="text/javascript">
            function calc(fun){
                var result=document.getElementById('result');
                var num1=document.getElementById('one');
                var num2=document.getElementById('two');
                if(isNaN(num1)||isNaN(num2)){//||或
                    alert('请输入数字');
                    
                    return false;
                }
                result.value=fun(num1,num2);
                
            function add(num1,num2){
                return num1+num2;
            }
            function sub(num1,num2){
                return num1-num2;
            }
            function mul(num1,num2){
                return num1*num2;
            }
            function div(num1,num2){
                if(num2==0){
                    alert('除数不能为0');
                    
                }
                return num1/num2;
            }
             }
    
        </script>
        
    </body>
</html>

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input type="text" id="one" >
        <input type="button" value="加" onclick="calc(add)" >
        <input type="button" value="减" onclick="calc(sub)" >
        <input type="button" value="乘" onclick="calc(mul)" >
        <input type="button" value="除" onclick="calc(div)" >
        <input type="text" id="two" >
        =<input type="text" id="result" >
        
        <script type="text/javascript">
            function calc(fun){
                var result=document.getElementById('result');
                var num1=parseInt(document.getElementById('one').value);
                var num2=parseInt(document.getElementById('two').value);
                if(isNaN(num1)||isNaN(num2)){//||或
                    alert('请输入数字');
                    
                    return false;
                }
                result.value=fun(num1,num2);
            }    
            function add(num1,num2){
                return num1+num2;
            }
            function sub(num1,num2){
                return num1-num2;
            }
            function mul(num1,num2){
                return num1*num2;
            }
            function div(num1,num2){
                if(num2==0){
                    alert('除数不能为0');
                    
                }
                return num1/num2;
            }
             
    
        </script>
        
    </body>
</html>

为什么要通过calc呢,onclick直接绑定对应的加减乘除方法不好吗?

  <input type="button" value="加" onclick="calc('+')" >
        <input type="button" value="减" onclick="calc('-')" >
        <input type="button" value="乘" onclick="calc('*')" >
        <input type="button" value="除" onclick="calc('/')" >

 function calc(fun){
                var result=document.getElementById('result');
                var num1=parseInt(document.getElementById('one').value);
                var num2=parseInt(document.getElementById('two').value);
                if(isNaN(num1)||isNaN(num2)){//||或
                    alert('请输入数字');
                    
                    return false;
                }
                result.value= eval(num1 + ' '  + fun + ' ' + num2);
            }