【JavaScript】Function函数

一、函数的声明方式(3种)


        1、普通

               function box (num1,num2){

                             return num1+num2;

                }

        2、使用变量初始化函数

                var box=function(num1,num2){

                          return num1+num2;

                }

        3、使用function 构造函数

               var box =new Function('num1','num2','return num1+num2');

              第三种方式不推荐,会导致解析两次代码,第一次是ECMAScript代码,第二次是解析传入的构造函数中的字符串,会影响性能。但能通过这种语法来理解函数是对象,函数名是指针的概念。

 

二、函数的内部属性


         2个特殊的对象:argumentsthis

        1arguments

           是一个类数组对象,包含着传入函数中的所有参数,主要用途是保存函数参数。

          用途:

          1、表示函数自身:

                对于阶乘函数一般要用到递归算法,所以函数内部一定会调用自身,如果函数名不改变是没有问题的,但一旦改变函数名,内部的自身调用需要逐一修改,为了解决这个问题,可以用arguments.callee来代替

               


        2this

               this引用的是函数据以执行操作的对象,或者说函数调用语句所处的那个作用域。

     


       


三、函数属性和方法


        每个函数对包含两个属性

        1length

              表示函数希望接收的命名参数的个数。


         

        2prototype

               是保存所有实例方法的真正所在,也就是原型。它有两个方法(每个函数都包含,都是在特定的作用域中调用的函数,实际上等于设置函数体内this对象的值。):

             

         1apply()

                


       2 call()

             apply()方法相同,区别就是接收参数的方式不同。              

       2种方法经常用到的地方是扩充运行的作用域,对象冒充:

     


            好处就是不需要与方法发生任何耦合关系,也就是说,box对象和sayColor方法之间不会有多余的关联操作,比如box.sayColor=sayColor;

 


        通过Function函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将一个函数作为参数传递,实现了代码段的重复利用。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值