简简单单认识call,apply,bind方法

js里面的call apply bind 方法

利用js里面的function函数

    function example(a,b){
        console.log(a+b)
    }
    example(1,2)

    输出 3

call方法

    var a = 1;
    function example(){
        console.log(this.a)
    }
    输出 1

this代表的是window对象,a为全局变量,全局变量实际上是window对象的一个属性。

    var a = 1;
    var obj = {
        a=9;
    };
    function example(b){
        return this.a+b
    }
    console.log(example.call(obj,2))

输出11,而不是3,实际上,call是改变函数里面的this对象的,如果以example()这种普通方式调用函数的话,this值为我们设置的全局变量。而以call方法调用时,this值为我们传进去的obj对象。

apply方法

apply方法实际上是与call方法用法相同,只不过apply方法传进去的参数是以数组形式例如

example.apply(obj,[2])

其他与call并没有区别。

bind方法

我们用上面的方法使用bind方法

    var a = 1;
    var obj = {
        a=9;
    };
    function example(b){
        return this.a+b
    }
    console.log(example.bind(obj,2))

我们会发现打印出来的是一个函数

ƒ example(b){
            return this.a+b
        }
}

我们再把参数去掉打印一下

console.log(example.bind(obj))
ƒ example(b){
            return this.a+b
        }
}

我们会发现并没有变化

实际上bind是将obj对象与函数进行绑定,如果我们需要使用,我们需要将函数重新创建一个变量,然后调用新的变量就可以了,

var newexample = example();
newexample()

如果我们再进行打印

console.log(newexample(2))

我们会得到11

好了,call apply bind 方法就介绍到这里了,你记住了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值