js高级

函数上下文调用之apply方法

2019-05-27  本文已影响0人  椋椋夜色

<!DOCTYPE html>
<html lang="zh-CN">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> 函数上下文调用之apply方法 </title>

    <script>
        // apply跟call的作用一毛一样
        // 只是有一个区别:call传实参,要一个一个传,而apply直接传一个数组
        // 用apply,就要传数组,传数组,它会把数组依次铺开,然后分别赋值给形参
        // 语法:函数.apply(要修改的this指向, [数组]);

        // apply 的基本使用
        function f1(a, b) {
            console.log(a, b);
            console.log(this);
        };
        var obj = {
            name: "jack"
        };
        f1.apply(obj, [20, 30]);
        // 用apply,就要传数组,传数组,它会把数组依次铺开,然后分别赋值给形参

        // 调用Math.max方法,只不过想直接传入一个数组,它帮我把数组里面元素依次铺开
        // 所以要用apply,但是又不需要改this指向,所以传入Math自己,代表不改它指向
        var arr = [11,22,33,44,55,66];
        // 找最大值;
        var max = Math.max.apply(Math,arr);
        console.log(max);  // 66
        // 找最小值;
        var min = Math.min.apply(Math,arr);
        console.log(min); // 11


    </script>

</head>

<body>

</body>

</html>

上一篇 下一篇

猜你喜欢

热点阅读