JavaScript ES6 - call apply bind

call与apply:

call - 立即执行函数,可以改变函数内部的this指向

apply - 和call一样,不过参数为数组类型

call:
object.call(thisObj,argsName,vlaue)

apply:
object.apply(thisObj,argsName,[value,value...])

 

  <script>
    //call
    var o={
      age: 18
    }
    function fn(name){
      this.name=name;
      console.log(this)
    }
    fn.call(o,"name","levi")

   fn.apply(0,name,[1,2,34])
</script>

 

bind:

不会立即执函数,会返回一个函数内this指向已经改变了的函数

var newObj=object.bind(thisObj,value1,vlaue2,value3...)
  <script>
    //bind
    var o={
      age: 18
    }
    function fn(a,b,c){
      var sum=a+b+c
      console.log(this,sum)
    }
    var f=fn.bind(o,1,2,3)
    //调用
    f()
  </script>

 

posted on 2022-05-17 17:53  每天积极向上  阅读(59)  评论(0编辑  收藏  举报

导航