JS 函数call和apply

来源:互联网 发布:linux安装binwalk 编辑:程序博客网 时间:2024/05/29 16:23
<!DOCTYPE html><html>  <head>    <title>01_define.html</title>    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="this is my page">    <meta http-equiv="content-type" content="text/html; charset=UTF-8">    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->    <script type="text/javascript">        console.log('方法call和apply,是通过函数名来调用的,对于apply而言,有两个参数,第一个是调用的上下文,第二个是参数数组,可以直接把arguments传递进去。对于call而言,第一个参数是上下文,后面的参数是不同函数参数');        function sum(num1,num2){            return num1+num2;        }        function callSum1(num1,num2){            //sum.apply表示使用sum这个函数来完成一次调用(就是调用sum函数),调用的参数就是callSum1这个函数的参数(就是调用sum函数,参数用callSum1中的参数)            //apply的第二个参数表示一个参数数组,第一个参数this可以可不写这里就表示window            return sum.apply(this,arguments);        }        function callSum2(num1,num2){            //不用arguments也可以这样写,第二个参数是参数数组            return sum.apply(this,[num1,num2]);        }        console.log(callSum1(10, 11));        console.log(callSum2(20, 30));        function callSum3(num1,num2){            //call是通过参数列表来完成传递,不是通过参数数组了,其他和apply一样.当确定了传递参数的个数,就可以用call如果不确定就可以用apply            return sum.call(this,num1,num2);        }        console.log(callSum3(40,40));    </script>  </head>  <body>    This is my HTML page. <br>  </body></html>
原创粉丝点击