首页 > 移动平台 > 详细

call, apply, bind -----【改变this指向的三大利器】

时间:2019-10-29 12:30:49      阅读:84      评论:0      收藏:0      [点我收藏+]

在前面的章节中,我们有讲到过关于 ES5 和 ES6 中 this 指向的问题,那么今天我们就来聊一下在JavaScript 中,如何利用 call, apply, bind 改变 this 指向的问题

 

A.call( B,x,y ):B是 this 要指向的对象,x 和 y 是A方法的参数。
 
    function Teacher() {
           this.name=‘teacher‘
	}
	
	function Student() {
	    this.name=‘student‘
	}
	Student.prototype.study=function () {
	    console.log(‘i am ‘+this.name);
	}
	
	var t=new Teacher();
	var s=new Student();
	
	s.study()
	s.study.call(t)   // 用 s 的方法调用(显示)t 的数据内容

 打印结果如下:

技术分享图片

 现在我们给Fn student添加两个形数,再给 call 添加实参:

 

 

"链式"借用:
 
 
【总结】:call, apply, bind 异同
 
相同之处:
1、都是用来改变函数的this对象的指向的。
2、第一个参数都是this要指向的对象。
3、都可以利用后续参数传参。
不同之处:
 
 
 

call, apply, bind -----【改变this指向的三大利器】

原文:https://www.cnblogs.com/edwardwzw/p/11757426.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!