JavaScript中的 bind-call-apply方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>bind-call-apply方法</title>
    <script>
        // bind方法
        // 将函数或者方法中的this修改为指定的对象, 会返回一个修改之后新的函数给我们
        // 该方法除了修改this之外, 还可以传递参数, 并且参数必须写在this的后面
        // call方法
        // 将函数或者方法中的this修改为指定的对象, 会立即调用修改之后的函数
        // 该方法除了修改this之外, 还可以传递参数, 并且参数必须写在this的后面
        // apply方法
        // 将函数或者方法中的this修改为指定的对象, 会立即调用修改之后的函数
        // 该方法除了修改this之外, 还可以传递参数, 并且参数必须以数组的形式写在this的后面

        let obj = {
            name: "zs"
        };

        /*
        // 修改函数中的this

        // function test(a, b) {
        //     console.log(a, b);
        //     console.log(this);
        // }

        // 通过bind修改
        // let fn = test.bind(obj, 1, 2);
        // fn();

        // 通过call修改
        // test.call(obj, 3, 4);

        //通过apply修改
        // test.apply(obj, [5, 6]);
        */

        // 修改方法中的this

        // function Person() {
        //     this.name = null;
        //     this.age = 10;
        //     this.fun = function () {
        //         console.log(this);
        //     };
        // }
        // let p = new Person();

        // 通过bind修改
        // let fn = p.fun.bind(obj);
        // fn();

        // 通过call修改
        // p.fun.call(obj);

        // 通过apply修改
        // p.fun.apply(obj);
    </script>
</head>
<body>

</body>
</html>
原文地址:https://www.cnblogs.com/TomHe789/p/12716215.html