标签:引用 有一个 ret 函数对象 初始化 没有 学习 win script
由于函数是对象,因此函数名实际上也是一个指向函数对象的指针
1、函数的声明方式:
普通的函数声明
function box(num1.num2){
return num1+num2;
}
使用变量初始化函数
var box=function(num1,num2){
return num1+num2;
}
2、作为值的函数:
ECMAScript 中的函数名本身就是变量,所以函数也可以作为值来使用,也就是说,不仅可以像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果放回
function box(sumFunction,num){
return sumFunction(num);
}
function sum(num){
return num +10;
}
传递函数到另一个函数里
var result=box(sum,10);
3、函数的内部属性:
在函数内部,有两个特殊的对象,arguments和this。arguments是一个类数组对象,包含着传入函数中的所有参数,主要用途是保存函数参数。但是这个对象还有一个名字叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数
function box(num){
if(num<=1){
return 1;
}else{ return num*box(num-1);
}
}
对于阶乘函数一般要用到递归,所以函数内部一定会调用自身,如果函数名不改变是没有问题的,但是一旦改变函数名,内部的自身调用需要逐一修改,为了解决这个问题,我们引入使用arguments来代替。
function box(num){
if(num<=1){
return 1;
}else{ return num*arguments.callee(num-1);
}
}
函数内部另一个特殊对象是this,其行为与java 和C#中的this大致相似,换句话讲this引用的是函数数据以执行操作的对象,或者说函数调用语句所处的那个作用域,ps:当在全局作用域中调用函数时,this对象引用的就是windoas
4、函数的属性:
ECMAScript 中的函数也是对象,因此函数也是有属性和方法,每个函数都包含两个属性;length和prototypc。其中,length属性表示函数希望接收的命名参数的个数
prototype下的两个方法:apply和call
使用call()和apply()来扩充作用域的最大好处,就是对象不需要与方法发生任何耦合关系,
第77天python Javascript function学习
标签:引用 有一个 ret 函数对象 初始化 没有 学习 win script
原文地址:https://www.cnblogs.com/jianchixuexu/p/12268281.html