主页 > 专题教程 > javascript > js基础 >
来源:自学PHP网 时间:2018-02-08 10:24 作者: 阅读:次
[导读] 在JavaScript函数的内部有2个特殊的对象:arguments和this。本文将介绍这两个函数内部对象。...
在JavaScript函数的内部有2个特殊的对象:
function fn1(arg){ return arg * 10; } fn1(1,2,3); //打印函数fn1的参数 for(var i = 0; i < arguments.length; i++){ console.info(arguments[i]); } 虽然函数 在 //求阶乘函数 function factorial(num){ if(num <= 1){ return 1 }else{ return num * factorial(num - 1); } } 由于在JavaScript中函数名称是可以改变的,上面求阶乘的方法中递归调用的函数名和原有的函数名耦合在一起了,如果将来这个函数名称被更改了,递归调用就会失败。例如: var cf = factorial; console.info(cf(5)); //此时不会报错,输出120 //如果我们将factorial函数置空,就会出现问题 factorial = null; console.info(cf(5)); //此时会报错:"Uncaught TypeError: factorial is not a function" 由于 //使用arguments.callee来完成递归调用 function factorial(num){ if(num <= 1){ return 1 }else{ return num * arguments.callee(num - 1); } } 在JavaScript中,通常都是使用 通过前面的学习我们知道,在我们需要创建一个类的时候,设置类的属性和方法需要通过this关键字来引用。但是特别要注意:this关键字在调用时会根据不同的调用对象而变得不同。来看下面的例子: var color = "red"; //定义一个函数 function showColor(){ console.info(this.color); } //创建了一个类 function Circle(color){ this.color = color; this.showColor = showColor; } var c = new Circle("yellow"); 在上面的代码中,首先创建了一个 c.showColor(); //showColor()方法的调用者是对象c,所以this == c 在上面这个方法调用中,使用的是对象c来调用 showColor(); //此时调用showColor()方法的对象是window,所以this == window 如果直接调用 判断 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com