美文网首页
老生常谈:call,apply,bind的使用及区别

老生常谈:call,apply,bind的使用及区别

作者: mr_zhi | 来源:发表于2017-02-15 01:45 被阅读0次
    Paste_Image.png

    由下面的图片我们可以看到:xiaoming和小红两个对象的say方法是完全一样的,唯一不同是函数里边的this指向不同(上下文环境不同),为避免重复我们使用apply,如下图:

    Paste_Image.png

    apply方法使xiaohong可以直接调用xiaoming的say方法,并且say方法中的this指向xiaohong
    apply和call并没有多大的区别,只是函数传参方式不同,apply是以数组形式传参而call是直接传如下图

    Paste_Image.png

    bind是指将第一个参数作为this传进去,好像跟上边一样哈,那我们看看:

    Paste_Image.png

    没错,由上图我们看出,bind方法返回的是bar方法,需要我们去调用,而call和apply直接返回值了
    总结,反正我是弄清楚了,ok

    相关文章

      网友评论

          本文标题:老生常谈:call,apply,bind的使用及区别

          本文链接:https://www.haomeiwen.com/subject/ttbfittx.html