JS的 bind() call() apply() 中的this

this是什么?

谁调用当前函数或者方法, this就是谁

这三个方法的作用是什么?

这三个方法都是用于修改函数或者方法中的this的

1. bind方法作用

修改函数或者方法中的this为指定的对象, 并且会 返回 一个修改之后的 新函数 给我们

注意点: bind方法除了可以修改this以外, 还可以传递参数, 只不过 参数 必须写在 this对象的后面

2. call方法作用

修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数

注意点: call方法除了可以修改this以外, 还可以传递参数, 只不过参数必须写在this对象的后面

3. apply方法作用

修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数

注意点: apply方法除了可以修改this以外, 还可以传递参数, 只不过参数必须通过数组的方式传递

        function test(a, b) {
            console.log("传递的形参: ",a, b);
            console.log("this指向: ",this);
        }
        let obj = { name: "zs" }
        
        test(10, 20);
        //传递的形参:  10 20
        //this指向: window {window:window self:Window.................Window对象}


        let fn = test.bind(obj, 10, 20);
        fn();
        //传递的形参:  10 20
        //this指向:  {name: 'zs'}


        test.call(obj, 10, 20);
        //传递的形参:  10 20
        //this指向:  {name: 'zs'}


        test.apply(obj, [10, 20]);
        //传递的形参:  10 20
        //this指向:  {name: 'zs'}
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值