JS 函数call和apply

<!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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值