关闭

javascript Function

95人阅读 评论(0) 收藏 举报
分类:

Function:

1:函数名实际上是一个指向函数对象的指针,不会与某个函数绑定。

2:只写函数名并不会调用函数,只有函数名()才是对函数的调用。

3:函数没有重载  感觉是因为(1)函数名只是一个指针,当对一个函数名进行第二次赋值时,已经对之前的值进行了覆盖(2)对于覆盖的条件也完全不符合,没有返回值,参数个数本来就可以不确定

4:函数的内部属性 在函数内部有两个特殊对象 arguments和this。arguments的主要用途是保存函数参数,arguments对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。this引用的是函数据以执行的环境对象。

例子:function factorial(num){

if(num <= 1){

return 1;

}else{

return num*arguments.callee(num-1);

}

}

5:每个函数都包含两个属性:length和prototype。其中length属性表示函数希望接收的命名参数的个数。

6:每个函数都有两个非继承而来的方法:apply()和call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。首先apply()方法接收两个参数:一个是在运行函数的作用域,另一个是参数数组。其中,第二个参数可以是Array的实例,也可以是arguments对象。对于call()方法而言,第一个参数是this值没有变化,变化的是其余参数都直接传给函数。

例子:

function sum(num1, num2){

return num1+num2;

}

function callSum1(num1,  num2){

return sum.apply(this, arguments);

}

function callSum2(num1, num2){

return sum.apply(this, [num1, num2]);

}

function callSum(num1, num2){

return sum.call(this, num1, num2);

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场