函数部分分为几个部分:
1.介绍函数定义的方法
http://blog.youkuaiyun.com/github_34514750/article/details/51049908
2.本篇介绍函数内部的对象
3.函数属性和方法
http://blog.youkuaiyun.com/github_34514750/article/details/51336518
4.IIFE立即调用函数表达式
http://blog.youkuaiyun.com/github_34514750/article/details/52883401
1.函数内部两个对象arguments和this
1.1.arguments对象
1.arguments是一个类数组对象,包含传入函数中的所有参数
2.此对象还有callee的属性,是一个指针,指向有arguments对象的函数
var numTotal = factorial(5);
function factorial(num){
if(num <=1 ){
return 1;
}else {
return num * factorial(num-1);
}
}
console.log(numTotal);//120
为了消除递归这种函数执行和函数名称紧耦合的现象,为了消除这种紧密耦合的现象,可以使用arguments.callee
var numTotal = factorial(5);
function factorial(num){
if(num <=1 ){
return 1;
}else {
return num * arguments.callee(num-1);
}
}
console.log(numTotal);//120
1.2.this对象
引用的是函数据以执行的环境对象