apply()和call()方法
来源:互联网 发布:数控子弹编程图纸大全 编辑:程序博客网 时间:2024/06/06 02:09
ES5的函数是对象,所以也有属性和方法。
function box(value1, value2) { } console.log(box.length); // 2 返回的是函数参数的个数
每个函数都有prototype(原型)属性,prototype有apply()和call()两个方法。
每个函数都包含了这两个非继承而来的方法,用来冒充该方法,通过其他的函数调用它。
function sum(num1, num2) { return num1+num2; } // apply()方法 function pretend(num1, num2) { return sum.apply(this, [num1, num2]); // pretend冒充了sum方法 // 参数this表示当前作用域,根据上下午this在这里就是window; [num1, num2]数组表示传递的参数。 } console.log(pretend(4, 9)); // 13 // call()方法 function pretendOther(num1, num2) { return sum.call(this, num1, num2); // pretendOther冒充了sum方法 // 参数this同样表示作用域, num1、num2表示传递的参数。 } console.log(pretendOther(4, 9)); // 13 apply()和call()方法唯一的区别就是:它们传递参数的形式不同。
apply()和call()方法真正的作用是:能够扩展函数赖以运行的作用域!
var color = 'red'; var box = { color: 'blue' }; function sayColor() { alert(this.color); } sayColor.call(box); // 冒充box, 作用域就在box对象内,所以为blue // call()和apply()扩展作用域最大的好处:使得对象和方法不需要存在任何耦合关系
阅读全文
0 0
- call和apply方法
- call 和 apply 方法
- call()和apply()方法
- apply()和call()方法
- apply()方法和call()方法
- javascript call和apply方法
- javascript call和apply方法
- JavaScript call()和apply()方法
- jquery call方法和apply方法
- JavaScript中的apply()方法和call()方法
- jquery call方法和apply方法接触
- javascript中的call方法和apply方法
- JS中的apply方法和call方法
- js 中的 call() 方法 和 apply()方法
- JavaScript中的apply()方法和call()方法
- Js apply方法 和 call 方法详解
- call方法和apply方法的区别
- jquery call方法和apply方法接触
- 对Android权限一些新的理解
- lua从固定table中随机出不重复的子table
- 【亲测可用】 CentOS6.8 网络配置ip 连接外网
- 1_各种软件下载
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(二)Log4j讲解与整合
- apply()和call()方法
- RecyclerView的上拉刷新,和下拉加载
- lamp 开关灯 (dp)
- POJ1741-Tree
- Mysql安装
- SpringBoot 项目属性配置管理
- java变量的分类
- Java: about String
- 一个小项目