码迷,mamicode.com
首页 > 移动开发 > 详细

call, apply, bind

时间:2019-10-29 11:43:35      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:color   总结   style   als   prototype   内容   结果   相同   今天   

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

标签:color   总结   style   als   prototype   内容   结果   相同   今天   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!