JS中call和apply区别有哪些 记录
2015-07-17 11:54
489 查看
一、call和apply区别
传递参数的方式。用法上不同,主要是参数不完全同
(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(某个具体的方法)。
注意apply方法中的参数args:
a) args是Array对象的一个实例,也就是一个数组;
b) args的个数为零(就是说不起作用)或1个;。
apply在这里译为“应用”,即“A对象应用B对象的某个方法”。
二、call和apply实例
来源于:http://blog.csdn.net/whaxrl/article/details/25116809
传递参数的方式。用法上不同,主要是参数不完全同
(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(某个具体的方法)。
注意apply方法中的参数args:
a) args是Array对象的一个实例,也就是一个数组;
b) args的个数为零(就是说不起作用)或1个;。
apply在这里译为“应用”,即“A对象应用B对象的某个方法”。
二、call和apply实例
function Person(name,age) { this.name=name; this.age=age; this.money = 500; } function myFun(money) { alert(this.money); } var money = 100; myFun(money); //return 100; //window.myFun(money); save to myFun(money); //这个时候this指向的是window对象,其实myFun函数和定义的var money = 100;都作为window对象子对象(即全局对象) myFun.apply(window,[]); //save to window.myFun.apply(window,[]); //return 100; //同上 myFun.apply(new Person('zhangsan',23),[]); //return 500, 空数组作为参数,仅符合语法要求 //这个时候myFun方法里面的this指向的是new Person('zhangsan',23)对象,二不是myFun类(函数),故弹出500 myFun.call(new Person('zhangsan',23),money,300,'mycardId'); //return 500, 后面money,300和mycardId是参数列表作为参数,一一列出 //这个时候myFun方法里面的this指向的是new Person('zhangsan',23)对象,二不是myFun类(函数),故弹出500
来源于:http://blog.csdn.net/whaxrl/article/details/25116809
相关文章推荐
- Toolbar的高级使用
- 【Android Studio探索之路系列】之一:Android Studio开篇
- ios中的c第三天循环
- Android高德地图开发 地图事件
- android webview实现加载效果
- 在Android中显示GIF动画
- Android如何使用API
- iOS: 让自定义控件适应Autolayout注意的问题
- 为毛我的APP崩溃了?!
- 【cocos2d-x】CCDirector
- Android 使用ptrace查看其它进程的内存数据
- 手机分辨率和webapp分辨率的关系
- 在Unity中使用Shader
- Android新的漏洞的应用程序中的发现!
- Android ScrollView和ListView联用,且ListView可以下拉刷新和上拉加载
- iOS百度地图开发笔记(三)
- Unity 与 Web 的简单交互
- Unity3D AssetBundles 动态加载游戏资源
- 【Android Studio探索之路系列】之二:Android Studio软件安装
- 词典程序