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>