js三种改变this指向的方法call、apply、bind及区别
2020-07-09 00:50
525 查看
call()方法
1、第一个作用可以调用函数,第二个可以改变函数内this的指向
2、call 主要作用可以实现继承
var o = { name: "andy" } function fn(a, b) { console.log(this); //指向 对象o console.log(a + b); }; fn.call(o, 1, 2);
实现子类对父类的继承
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) //父类构造函数调用了子类的this } var son = new Son("刘德华", 18, "男"); console.log(son);
apply()方法
1、第一个作用可以调用函数,第二个可以改变函数内this指向
2、第二个参数必须是数组
比如可以利用apply方法借助于数学内置对象求数组最大值
var arr = [1, 66, 22, 10]; var arr1 = ["red", "pink"]; var max = Math.max.apply(Math, arr); var min = Math.min.apply(Math, arr); console.log(max, min);
bind()方法
1、不会调用原来的函数,可以改变this指向
2、返回的是原函数改变this之后产生的函数
3、如果有的函数我们不需要立即调用
4、当我们击了之后,就禁用这个按钮,3秒之后再开启
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) //bind 里面的this指向的是btn } }
相关文章推荐
- js中改变this指向的三种方法(bind、call、apply)
- 详解改变this指向的三种方法call apply bind及重写(模拟)
- JS中改变this指向的方法(call和apply、bind)
- js中改变this指向的三个常用方法bind,call和apply
- JS中改变this指向的方法(call和apply、bind)
- js中this的改变指向的方法:call和apply、bind
- JS 中的this指向问题和call、apply、bind的区别
- js的this指针指向谁,以及相关的call、apply、bind方法
- call,apply,bind方法改变this指向的原理
- js call() apply() bind() -改变this指向
- js面向对象||this指向||call和apply方法的使用和区别
- JavaScript中call,apply,bind方法的总结(改变this指向)
- js改变this指向方法call,apply;jq改变this指向方法$.proxy()
- 改变【this】指向的三种方式(call、apply、bind)对比
- JavaScript改变this指向apply、call和bind方法
- call、apply、bind的使用,改变this指向的三种方式
- js apply/call/caller/callee/bind使用方法与区别分析
- javascript改变this指向之call、apply、bind
- 改变this的三种方式:call,apply,bind简述
- JavaScript知识梳理 - 函数的this指向及改变 - call、apply、bind(六)