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>
浙公网安备 33010602011771号