call, apply, bind

时间:2021-02-02 17:49:18

在前面的章节中,我们有讲到过关于 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 的数据内容

 打印结果如下:

call, apply, bind

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

 

 

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