JS中call和apply区别有哪些
来源:互联网 发布:淘宝造物节官网 编辑:程序博客网 时间:2024/05/17 22:17
一、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实例
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类(函数),故弹出500myFun.call(new Person('zhangsan',23),money,300,'mycardId'); //return 500, 后面money,300和mycardId是参数列表作为参数,一一列出//这个时候myFun方法里面的this指向的是new Person('zhangsan',23)对象,二不是myFun类(函数),故弹出500
文章转载自: JS中call和apply区别 http://www.studyofnet.com/news/419.html
0 0
- JS中call和apply区别有哪些
- JS中apply和call的区别
- JS中call和apply区别
- js中apply()和call()的区别
- js中call和apply的区别
- js中call和apply的区别
- js中call和apply的区别
- js中call()和apply()的区别
- JS中call和apply的区别
- JS: call和apply 区别
- js中apply和call
- Js中apply和call
- JS中call和apply
- js中call和apply
- js中call和apply
- Js中call和apply的区别和用法
- JS中apply和call的联系和区别
- Js中call和apply的区别和用法
- JS获取中文拼音首字母,并通过拼音首字母快速查找页面内的中文内容
- MySQL之锁-1 降低锁竞争,减少MySQL用户等待时间
- apache运行CGI程序的配置
- poj1011(深搜+剪枝)
- 第十一周项目4-类族设计
- JS中call和apply区别有哪些
- linux 搭建https 服务器 (apache)
- 3D游戏之路--第六篇—win32 编程(3)<更新中>
- shell编写俄罗斯方块
- HDU 4216-Computational Geometry?
- ubuntu下如何获取源码包和源码
- 新型IO架构引领存储之变(一)
- XML解析技术研究(一)
- NYOJ15 - UVA1626 括号匹配问题(区间dp)