码迷,mamicode.com
首页 > 编程语言 > 详细

第77天python Javascript function学习

时间:2020-02-06 14:44:43      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:引用   有一个   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!