博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
call/apply/bind
阅读量:7169 次
发布时间:2019-06-29

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

使用 call() 和 apply()

call 和 apply是 Function 对象的原型方法,它们能够将特定函数当作一个方法绑定到指定对象上并进行调用。具体用法如下:

function.call(thisobj, args... ) function.apply(thisobj, args)

其中参数 thisobj 表示this指定的对象,参数 args 表示要传递给被调用函数的参数。 call()方法只能接收多个参数列表, 而 apply()只能接收一个数组或者伪类数组,数组元素将作为参数传递给被调用的函数。

//定义一个add 方法    function add(x, y) {        return x + y;    }    //用call 来调用 add 方法    function myAddCall(x, y) {        //调用 add 方法 的 call 方法        return add.call(this, x, y);    }    //apply 来调用 add 方法    function myAddApply(x, y) {        //调用 add 方法 的 applly 方法        return add.apply(this, [x, y]);    }    console.log(myAddCall(10, 20));    //输出结果30      console.log(myAddApply(20, 20));  //输出结果40

使用 bind()

用来把函数绑定到指定对象上。

function.bind(thisArg [, arg1[, arg2 [, argN]]])

1.function:必需参数, 一个函数对象。 2.thisArg:必需参数,this关键字可在新函数中引用的对象。 3.arg1[, arg2[, argN]]:可选参数,要传递到新函数的参数的列表。

var checkNumericRange = function (value) {     if (typeof value !== 'number'){        return false;    }else{        return value >= this.minimum && value <= this.maximum;    }}var range = { minimum: 10, maximum: 20 };var boundCheckNumericRange = checkNumericRange.bind(range); var result = boundCheckNumericRange (12); document.write (result); //true

 

转载于:https://www.cnblogs.com/lanshu123/p/10566558.html

你可能感兴趣的文章
configure:error: Package requirements (libffi >= 3.0.0) were not met
查看>>
java 抽象类与接口的区别
查看>>
Linux驱动模块编译模板
查看>>
我的友情链接
查看>>
MySQL 5.6.12 安装
查看>>
MCSA&MCP认证证书
查看>>
我的友情链接
查看>>
进阶篇第五期:UIScrollView的那点事儿
查看>>
CSS系列:CSS中盒子模型
查看>>
2017网络安全产业研究报告学习笔记
查看>>
AES&FEC GPON中的加密与纠错
查看>>
python 字典嵌套
查看>>
Android系统名词解释汇总
查看>>
推荐开发工具系列之--PyF5(自动刷新)
查看>>
Nginx配置
查看>>
Josephus问题的不同实现方法与总结
查看>>
linux监控系统_Zabbix概念(2)
查看>>
JMM & synchronized概述
查看>>
路由器改交换机设置
查看>>
nagios系列(八)之nagios通过nsclient监控windows主机
查看>>