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

深入浅出:了解JavaScript中的call,apply,bind的差别

时间:2018-09-02 11:55:06      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:OLE   回调   3.1   最大数   rop   3.3   style   赋值   lin   

 在 javascript之 this 关键字详解文章中,谈及了如下内容,做一个简单的回顾:  
      1.this对象的涵义就是指向当前对象中的属性和方法。
      2.this指向的可变性。当在全局作用域时,this指向全局;当在某个对象中使用this时,this指向该对象;当把某个对象的方法赋值给
      另外一个对象时,this会指向后一个对象。
      3.this的使用场合有:在全局环境中使用;在构造函数中使用,在对象的方法中使用。
      4.this的使用注意点,最重要的一点就是要避免多层嵌套使用this对象。
   

对this关键字有了稍稍了解便知道,this对象指向会经常改变的,这会造成一些意想不到的影响。JavaScript提供了call、apply、bind
      这三个方法,来切换/固定this的指向。

下面的主要划分:

1.call/apply/bind方法的来源
2.Function.prototype.call
3.Function.prototype.apply
3.1:找出数组中的最大数
3.2:将数组的空元素变为undefined
3.3:转换类似数组的对象
4.Function.prototype.bind
5.绑定回调函数的对象
6.call,apply,bind方法的联系和区别

 

 

1.call/apply/bind方法的来源 

  首先,在使用call,apply,bind方法时,我们有必要知道这三个方法究竟是来自哪里?为什么可以使用的到这三个方法? 

 call,apply,bind这三个方法其实都是继承自Function.prototype中的,属于实例方法。

console.log(Function.prototype.hasOwnProperty(‘call‘))//true

 

console.log(Function.prototype.hasOwnProperty(‘apply‘))//true

 

console.log(Function.prototype.hasOwnProperty(‘bind‘)) //true

 

111

深入浅出:了解JavaScript中的call,apply,bind的差别

标签:OLE   回调   3.1   最大数   rop   3.3   style   赋值   lin   

原文地址:https://www.cnblogs.com/yunshangwuyou/p/9573258.html

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