zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    [火柴排队]
    [NOI2001食物链]
    [黑科技]
    [SDOI2009HH的项链]
    [GXOI/GZOI2019旅行者]
    [Nim游戏]
    Log4Net
    C#创建windows服务并定时执行
    MySQL实现类似Oracle的序列
    DevExpress XtraTreeList的复选框 禁用
  • 原文地址:https://www.cnblogs.com/TomHe789/p/12716215.html
Copyright © 2011-2022 走看看