call, apply,bind的区别
           相同点:都可以用来改变this指向
          不同点:
          call, apply:传参方式不同;
          call从第二个参数开始都是传给函数的;
          apply只有两个参数,第二个参数是数组,数组中的值都是传给函数。
          call与apply改变函数的this指向后会立即执行
          bind是改变函数的this指向并返回这个函数,并不会立即执行
          call与apply的返回值是函数的执行结果,bind的返回值是改变this指向的拷贝
举例:
var person = {
names: 'Anne',
age: '23'
}
var sayHi = function (gender, hobbit) {
console.log(`我是${this.names},今年${this.age},爱好${hobbit},欢迎你的关注^_^`)
}
sayHi.call(person, 23, '前端开发') var person1 = {
names: 'Anne1',
age: '23'
}
var sayHi1 = function (gender, hobbit) {
console.log(`我是${this.names},今年${this.age},爱好${hobbit},欢迎你的关注^_^`)
}
sayHi1.apply(person1, [23, '吃吃喝喝^_^']) var person2 = {
names: 'Anne2',
age: '23'
}
var sayHi2 = function (gender, hobbit) {
console.log(`我是${this.names},今年${this.age},爱好${hobbit},欢迎你的关注^_^`)
}
sayHi2.bind(person2, 23, '旅游')()
call, apply适用场景:
  看参数数量,参数越多,最好用apply,将参数放入数组中,进而函数调用,参数少的话,call就行了
 

最新文章

  1. 【原】iOS动态性(四):一行代码实现iOS序列化与反序列化(runtime)
  2. mongo 导入json数据
  3. JavaScript弹出窗口技巧
  4. css 中的度量单位
  5. TTL和CMOS
  6. javascript 对象和数组(花括号、方括号)
  7. Hql 中实用查询时候 引号的使用
  8. wxPython学习笔记(一)
  9. 模板模式(Template)
  10. JDBC Connection Reset问题分析
  11. viminfo: 无效的启动字符
  12. document.body的一些用法以及js中的常见问题
  13. memcached缓存技术
  14. SQL SERVER 执行动态SQL EXEC
  15. Python Learning: 01
  16. Docker系列之Docker容器(读书笔记)
  17. android recovery 升级时间与速度研究
  18. ASP.NET Identity详解
  19. useradd密码无效
  20. 20155222卢梓杰 实验八 Web基础

热门文章

  1. element上传图片组件使用方法|图片回显|格式转换base64
  2. 洛谷P1496 火烧赤壁【题解】
  3. Ant Design Table 如何动态自定义?Ant Popover 遮挡?
  4. DQL_分组查询-DQL_分页查询
  5. 【随笔记】Littlevgl 8.x 踩过的坑
  6. python实现通用excel导入到mysql
  7. ASP.NET Core 系列总结
  8. 线程基础知识 03 synchronized锁(对象在内存的布局和加上锁后对象在内存中的变化)
  9. C#NPOI操作Excel,实现Excel数据导入导出(支持多个sheet)
  10. Android JetPack~ DataBinding(数据绑定)(一) 集成与使用