博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bind(),call(), apply()方法的区别是什么?
阅读量:4636 次
发布时间:2019-06-09

本文共 699 字,大约阅读时间需要 2 分钟。

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

转载于:https://www.cnblogs.com/zcsmile/p/10961983.html

你可能感兴趣的文章
python 错误之SyntaxError: Missing parentheses in call to 'print'
查看>>
Windows Phone开发(16):样式和控件模板
查看>>
CSE 3100 Systems Programming
查看>>
洛谷 1604——B进制星球(高精度算法)
查看>>
IntelliJ IDEA 的Project structure说明
查看>>
Java Security(JCE基本概念)
查看>>
Linux Supervisor的安装与使用入门
查看>>
AngularJS和DataModel
查看>>
在进行商业运算时解决BigDecimal的精度丢失问题
查看>>
创建 PSO
查看>>
JasperReport报表设计4
查看>>
项目活动定义 概述
查看>>
团队冲刺04
查看>>
MAC和windows开发操作系统环境,解决Maven工程中报 Missing artifact jdk.tools:jdk.tools
查看>>
我的Python分析成长之路8
查看>>
泛型在三层中的应用
查看>>
SharePoint2010 -- 管理配置文件同步
查看>>
客户资料查询传递数据格式
查看>>
.Net MVC3中取得当前区域的名字(Area name)
查看>>
(循环练习题) 五只猴子分桃子
查看>>