1.call apply bind 的作用和区别
作用:
都可以改变函数内部的this指向。
区别点:
1.call和apply会调用函数,并且改变函数内部this指向。
2.call和apply传递的参数不一样,call传递参数arg1,arg2..形式apply必须数组形式[arg]
3.bind不回调用函数,可以改变函数内部this指向。
解析:
call方法
改变函数内部this指向
call()方法调用一个对象。简单理解为调用函数的方式,但是它可以改变函数的this指向。
写法:fun.call(thisArg,arg1,arg3,...)//thisArg为想要指向的对象,arg1,arg3为参数
call的主要作用页可以实现继承
function Person(uname,age){
this.uname = uname
this.age = age
}
function Son(uname,age){
Person.call(this,uname,age)
}
var son = new Son("zhang",12)
console.log(son)
apply()方法
apply()方法调用一个函数。简单理解为调用函数的方法,但是它可以改变函数的this指向
写法:fun.apply(thisArg,[argsArray])
- thisArg:在fun函数允许时指定的this值
- argsArray:传递的值,必须包含数组里面
- 返回值就说函数的返回值,因为他就说调用函数
appl