1、call();可以调用函数,可以改变this指向,还可以继承类
2、apply();以伪数组形式存放
3、bind();开发使用最多,不会调用函数,改变指向但是不会立即调用函数
三者的第一个参数分别为需要指向的对象,后加参数。
应用
function Father(uname,age,sex) {
this.uname=uname;
this.age=age;
this.sex=sex;
}
function Son(uname,age,sex){
Father.call(this,uname,age,sex)
}
var son = new Son('张三',19,'男');
console.log(son);
// 可以判断数组中的最大最小值
var arry = [1,3,7,22,44,8];
var max = Math.max.apply(Math,arry);
var min = Math.min.apply(Math,arry);
console.log(max);
console.log(min);
<button>点击</button>
<button>点击</button>
<button>点击</button>
//点击按钮禁用开启
var btns = document.querySelectorAll("button");
for (var i = 0;i<btns.length;i++) {
btns[i].onclick=function() {
this.disabled = true;
setTimeout(function() {
this.disabled = false;
}.bind(this), 2000);
}
}