javascript的函数-重点介绍callee,call和apply
来源:互联网 发布:线切割软件 编辑:程序博客网 时间:2024/05/06 09:15
一、创建函数的2中方法
1、方法1
function box(num1,num2){ //创建函数的方式1return num1+num2;}2、方法2
var box1 = function(num1,num2){ //创建函数的方式2return num1+num2;}
二、函数作为参数传递
<span style="white-space:pre"></span>function box2(fun,num){ //函数作为参数传递return fun(num)+num;}function box3(num){return num+100;}var num = 12;alert(box2(box3,num));三、使用callee方法,配合arguments使用
1、传统的递归方式,使用名字来递归的方式
function box4(num){ //递归调用的方式1if(num==0){return 0;}return num+box4(num-1);}alert(box4(10));
2、使用callee方式
function box5(num){ //采用arguments.callee调用自身,可以避免函数名字变化if(num==0){return 0;}return num+arguments.callee(num-1);}alert(box5(10));
四、length方法
<span style="white-space:pre"></span>function box6(num1,num2){}alert(box6.length); //返回函数参数的个数
五、使用call和apply方法
1、call可以用来改变对象的中的this
function add(a,b){alert(this); //默认this是window}function sub(a,b){}add(3,1); // 弹出[object window]add.call(sub,3,1); //弹出 function sub(a,b){}; 使用call可以修改扩展函数赖以运行的作用域
2、列子(该列子是google来的,觉得不错)
function Animal(){this.name = 'Animal';this.showName = function(){alert(this.name);}}function Cat(){this.name = 'Cat';}var animal = new Animal();var cat = new Cat();animal.showName.call(cat); //传递的this为cat,所以调用返回的是cat对应的'Cat'3、apply和call功能是一样的,就在传递参数有所区别
function add1(a,b){alert(this);}function add2(a,b){add1.apply(this,[a,b]);//add1.apply(this,arguments);}function sub(a,b){}add1(1,2);add1.apply(sub,[1,2]);
0 0
- javascript的函数-重点介绍callee,call和apply
- javascript的caller,callee,call,apply
- 理解JavaScript的caller,callee,call,apply
- 理解JavaScript的caller,callee,call,apply
- 理解JavaScript的caller,callee,call,apply
- javascript的caller,callee,call,apply概念
- 理解JavaScript的caller,callee,call,apply
- 理解JavaScript的caller,callee,call,apply
- javascript的call,callee,calle,apply
- 理解JavaScript的caller,callee,call,apply
- 理解JavaScript的caller,callee,call,apply
- 理解JavaScript的caller,callee,call,apply
- 函数的arguments,caller,callee,call,apply
- javascript 函数 function arguments caller callee apply() call()
- 关于javascript的apply和call函数
- javascript 函数的方法call()和apply()
- 关于javascript的apply和call函数
- 关于javascript的apply和call函数
- hdu 3849 By Recognizing These Guys, We Find Social Networks Useful
- Windows 8系统平台上应用软件安装心得
- OCP-1Z0-051-题目解析-第36题
- Linux下weblogic安装图解
- ubuntu下如何使用qq
- javascript的函数-重点介绍callee,call和apply
- POJ 3076 SUKODU [Dangcing Links DLX精准覆盖]
- 关于程序员如何减少程序Bug的若干建议
- 终于能用OFFICE2010新建03版本格式的文档了!
- php怎么处理截取字符串出现的乱码问题
- 协方差矩阵
- 指针函数、函数指针、返回函数指针的函数
- TI_DSP_SRIO - 两种SRIO操作模式
- Git hub protocol https not supported or disabled in libcurl