栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

JavaScript学习笔记之Function对象

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript学习笔记之Function对象

 在Javascript中,函数function就是对象。

JS中没有方法重载

  在Javascript中,没有方法(函数)重载的概念。

  例子:

复制代码 代码如下:

      
             
      
      
      


网页中弹框显示的是40。

  说明虽然第二个方法是两个参数,但是仍然调用了它。

  交换两个方法的顺序之后,弹框显示30,可以看出不管参数个数如何,是调用同名的后面的方法。

  怎么解释这个现象?

  这是因为函数声明实际上是建立了一个对象:

复制代码 代码如下:

   
       
   
       
   

  这样add实际指向的是后面的对象,而方法调用的时候赋予的参数将会按顺序赋给方法形式参数,后面没有被赋值的参数就是undefined。

  Javascript的函数调用的时候没有严格的参数个数检查,实参个数小于形参个数是可以的,没有被赋值的形参就是未定义值undefined。

  实参个数大于形参个数也是可以的,这样只有前面的实参会被使用,多出来的实参不会被使用。

Function对象

  在Javascript中有一个Function对象,所有自定义的函数都是Function对象类型的。

  Function对象接收的所有参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正需要接收的参数。

  例子:

复制代码 代码如下:

   
       
   
       
   

隐含对象arguments

  在Javascript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。

  arguments和函数的形式参数及其个数无关。

  arguments有个有用的属性length,表示实参的长度。可以借助这个来模拟出函数的重载:

  练习例子:

复制代码 代码如下:

   
       
   
       
   

  每一个函数对象都有一个length属性,表示该函数期望接收的参数格式。

  它与函数的arguments不同,arguments.length表示函数实际接收的参数个数。

  例子:

复制代码 代码如下:

   
       
   
   
   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/104337.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号