对JavaScript中call和apply的理解
来源:互联网 发布:轮毂拉丝机编程 编辑:程序博客网 时间:2024/05/23 09:44
1、相同点:
a) 产生的效果或作用完全相同;
b) 至少有一个参数;
c) 第一个参数必须有且是一个对象(Object),因为就是这个家伙偷懒。
2、不同点: 传递参数的方式。
前提:
1、有两个对象: A和B;
2、B有一个方法(这里用Function代替);
3、B的方法(Function)有两种参数传递的方式,但该方法产生的结果一样。
一种是除第一个参数外,其余的参数都打包进一个数组内,即B.Function.apply(A,args);
另一种是所有的参数都以各自的形式单独存在(包括第一个参数),即B.Function.call(A,arg,arg,......);
4、A想拥有和B同样的方法,但不想自己单独创建,即只想借用别人现成的东西(好赖皮)。
具体说明:
1、B.Function.call(A,arg,arg),这个例子是讲A对象“调用”B对象的Function(某个具体的方法)。
注意call方法中的参数arg:
a) arg的个数为零或多个;
b) arg可以是任何类型,包括Array(本人没有试过)。
call在这里译为“调用”,在JS中可以理解为“A对象调用B对象的某个方法”;
2、B.Function.apply(A,args),这个例子是讲A对象“应用”B对象的Function(某个具体的方法)。
注意call方法中的参数args:
a) args是Array对象的一个实例,也就是一个数组;
b) args的个数为零(就是说不起作用)或1个;(是否可以有多个,需要确认)。
apply在这里译为“应用”,即“A对象应用B对象的某个方法”。
以上的东东可有几处本人也没有试验过,比如说:
1、“至少有一个参数”,如果没有参数回事怎样?
2、“ 第一个参数必须有且是一个对象(Object),因为就是这个家伙偷懒。”,如果第一个参数为空又如何?
3、“arg可以是任何类型,包括Array”,是否arg真的可以为任何类型,本人都是传递String类型的参数。
- 对JavaScript中call和apply的理解
- 对js中call、apply和bind的理解
- 简单理解javascript中apply()和call()
- JavaScript中apply和call用法的理解
- JavaScript call()和apply() 的一些理解
- javascript 中apply 和call的区别
- JavaScript中apply和call的使用
- Javascript 中 apply() 和 call() 的区别
- javascript中call()和apply()的区别
- javascript中apply()和call()的区别
- javascript 中 call() 和 apply() 的区别
- JavaScript中call和apply的区别
- javascript中call和apply的区别
- JavaScript中call和apply的使用
- Javascript中call和apply的区别
- javascript 中 apply 和 call
- JavaScript中call和apply
- JavaScript中call和apply
- Cocos2d-x使用python创建项目出现WindowsError3错误的解决方案
- Handler的常见用法
- DirectX中设备创建,以及表面缓冲区的使用
- ]字符串中的单词逆转
- centos7安装mysql
- 对JavaScript中call和apply的理解
- Linux 技巧:让进程在后台可靠运行的几种方法
- 利用Math类,JAVA输入圆半径打印相似圆
- 关于APM飞控中High Hdop的一些测试
- jQuery获取绑定自定义事件的元素
- c++实现简单计算器
- 第十二周 【项目4 - 点、圆的关系】
- 5.代理模式
- java 学习书籍-想精通java的必看