bind(),call(), apply()方法的区别是什么?

  • 共同点:改变this指向,任何调用都不在起作用

  • bind() 改变this的指向,不会调用函数,返回一个新的函数

        var o ={a:'abc'};
    var fn1 = fn.bind(o);//this指向o 相当o.fn
    fn1();//
  • call( ) 改变this指向并调用函数---判断数据类型

        var arr = [1,2,4]
    var str = '1231';
    console.log(Object.prototype.toString.call(arr));//返回Array数据类型
    console.log(Object.prototype.toString.call(str));返回String数据类型
  • apply() 改变this指向并调用函数,后面的参数是以数组展示

            //求一数组中的最大值
    var arr = [2,13,30,1,4];
    console.log(Math.max.apply(null,arr));//利用apply()可以把数组展开单独传参
    console.log(Math.max.apply(Math,arr));
    //把数组中的元素一行展示
    console.log.apply(console,arr);//指向可以是null,主要是为了把数组展开传给console

最新文章

  1. iOS -初识UIKit
  2. js数组键入值push和 arr[]i]区别
  3. SQL Server:统计数据库中每张表的大小
  4. 使用事务操作SQLite数据库
  5. 人生的抉择—aspx、ashx、asmx文件处理请求效率比较
  6. 【BZOJ1833】【ZJOI2010】数字计数 数位DP
  7. swift3.0基础语法(2)
  8. Python IDLE 运行错误:IDLE's subprocess didn't make connection. --已解决(原创)!
  9. Redis几个认识误区
  10. QQSpamerUpdate
  11. 为什么PHP(CLI)同一个错误信息会打印两次?
  12. Unity3d学习 基础-关于MonoBehaviour的生命周期
  13. linux中重定向的用法
  14. pt-query-digest
  15. ASP.NET Core 2.0 : 四. _Layout与_ViewStart
  16. Codeforces Round #508 (Div. 2) C D
  17. 廖雪峰JavaScript学习笔记(基础及数据类型、变量)
  18. YII2十三大特性
  19. PYTHON-模块 sys os random shutil-练习
  20. qt之qmake

热门文章

  1. Android开发之拍照功能实现
  2. (转)基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
  3. nginx + php 403 原因分析
  4. Lua的热更新学习笔记_01
  5. bzoj4320 homework 题解
  6. 通过redis协议构建脏字过滤微服务
  7. jetty+httpClient使用
  8. 学习EXTJS6(7)基本功能-最常用的表单
  9. 学习EXTJS6(4)基本功能-信息提示框组件
  10. Java 学习(8):java 方法