apply 和call的用法
来源:互联网 发布:近年来自然灾害数据 编辑:程序博客网 时间:2024/05/29 17:32
对于apply和call两者在作用上是相同的,但两者在参数上有区别的。
对于第一个参数意义都一样,但对第二个参数:
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,
call则作为call的参数传入(从第二个参数开始)。
func.call(func1,var1,var2,var3) func.apply(func1,[var1,var2,var3])
同时使用apply的好处是可以直接将当前函数的arguments对象作为apply的第二个参数传入
(1)基本用法:
function add(a,b){ alert(a+b);}function sub(a,b){ alert(a-b);}add.apply(sub,[3,1]);//add.call(sub,3,1);
(2)实现继承:
function Animal(name){ this.name = name; this.showName = function(){ alert(this.name); } } function Cat(name){ Animal.apply(this, [name]); //Animal.call(this, name); } var cat = new Cat("Black Cat"); cat.showName();
(3)其他用法
Math.max 可以实现得到数组中最大的一项:
因为Math.max 参数里面不支持Math.max([param1,param2]) 也就是数组,但是它支持Math.max(param1,param2,param3…),所以可以根据apply的特点来解决 var max=Math.max.apply(null,array),这样轻易的可以得到一个数组中最大的一项。(apply会将一个数组转换为一个参数接一个参数的传递给方法)
push方法没有提供push一个数组,但是它提供了push(param1,param,…paramN) 所以同样也可以通过apply来转换一下这个数组,即:
var arr1=new Array("1","2","3");var arr2=new Array("4","5","6");Array.prototype.push.apply(arr1,arr2);
0 0
- apply和call的用法
- apply 和call的用法
- apply 和call的用法
- apply和call的用法
- call和apply的用法
- call和apply用法
- call 和apply用法
- call和apply的用法和区别
- call和apply的区别和用法
- call和apply的区别和用法
- call和apply的用法和区别
- javascript的call 和apply的用法
- javascript的apply和call用法
- js中call和apply的用法
- js中call和apply的用法
- 【js】apply和call的用法
- JS call和apply的用法
- .apply()用法和call()的区别
- CALayer图层
- android adb常用指令
- Ansible 最佳实践 之 Vault Pseudo leaf encryption
- poj解题报告——1035
- 网页中嵌入微博
- apply 和call的用法
- HDU 5147 Sequence II 树状数组
- Android学习笔记十.fragment(二) 之《图书详情》实战
- 七款诊断调试工具、五大编程类工具、六大图片、图标处理类工具
- android下载时,通知栏进度条卡死问题
- 实现strncpy
- android顶部菜单栏+滑动图片
- Assertion failure 错误
- Mule 官方例子研究(六)