热门搜索: win10 小米手机 拼多多
首页 > 软件 > function函数

function函数

2022-12-02 13:59 来源:网友投稿 浏览:1000
导读:Function的构造函数可以接收任意数量的参数,但最后一个参数始终被看做函数体。这种方式有个缺点是,会导致解析两次代码,第一次是基础的ES代码解析,第二次是解析传入构造函数中的字符串,这样会导致性能的下降,在此写出是帮助理解js中函数其实是对象这个概...

   我们知道,在js中,函数实际上是一个对象,每个函数都是function函数类型的实例,并且都与其他引用类型一样具有属性和方法。因此,函数名实际上是指向函数对象的指针,不与某个函数绑定。在常见的两种定义方式(见下文)之外,还有一种定义的方式能更直观的体现出这个概念:

  var sum = new Function("num1", "num2", "return num1 + num2"); //不推荐

  Function的构造函数可以接收任意数量的参数,但最后一个参数始终被看做函数体。这种方式有个缺点是,会导致解析两次代码,第一次是基础的ES代码解析,第二次是解析传入构造函数中的字符串,这样会导致性能的下降,在此写出是帮助理解js中函数其实是对象这个概念。

  (一)js函数没有重载的概念

  说到重载的概念,我们来类比Java中的重载是怎么实现的:在Java中,方法是通过方法签名来唯一标识一个方法。方法签名包括:方法名、参数数量、参数顺序和参数类型这几个要素。因此两个方法的方法名相同,而其他签名要素不同,编译器就会认为是两个不同方法,从而可以存在同名的不同方法,以实现重载的概念。(引用:怎么深入理解js中为什么没有重载呢--segmentfault 中manxisuo的回答)。

  而上面我们说过,js中的函数名实际上是指向函数对象的指针,因此函数名可以说是一个函数的唯一标识,跟参数列表并没有关系,因此并不会出现同名的两个函数(因为一个指针同时只能指向一个对象)从而不存在重载的概念。

  这样就很明显可以看出,上面一行将sum指向function(num1,num2),而接下来又将sum指向function(num1, num2, num3),从而造成第二次的指向覆盖了第一次的,因此更明显的看出js中并没有重载的概念。

  (二)函数声明和函数表达式的区别

  我们知道,常用的定义函数方法有两个:函数声明和函数表达式。

  函数声明,可以说是最常见的定义方法,如下例:

  这两段代码看起来差别不大,只是函数定义的方式不同而已。但事实是,第一段可以正常运行而第二段则会报错。这是因为,在代码开始执行之前,解析器就已经通过一个名为函数声明提升的过程,读取并将函数声明添加到执行环境中。简单来说,解析器会先将函数声明放在源代码树的顶部。而下面那段代码,函数位于一个初始化语句中(并不会将其提升到顶部),简单来说,在执行到这个赋值语句之前,sum并未指向任何一个函数,因此在之前调用函数则会报错。

  以上所述是给大家介绍的JS中function函数的理解,希望对大家有所帮助.

声明:时财网仅提供信息发布平台,如若内容有误或侵权请通过反馈通道提交信息,我们将按照规定及时处理。
相关阅读

热门推荐

  • 360手机助手更改设备默认的SD卡方法:在手机助手设置中可以设置将软件都安装到SD卡。360手机助手是一款智能手机的资源获取平台。可以给用户提供海量的游戏、软件、音乐、小说、视频、图片,通过这款软件可以轻松下载、安装、管理手机资源,拥有海量资源一键安... 更多
    --2022-12-13
  • wifi共享精灵是一款基于PC无线网卡应用的无线共享软件。通过一键设置,将笔记本变成无线路由器,让其他笔记本电脑、手机及PAD实现共享上网,不需要服务器支持,支持消息收发。wifi共享精灵启动不了可能有很多原因,下面一起来看看wifi共享精灵启动不了的解决... 更多
    --2022-12-02
  • 最近有朋友问115网盘上的东西怎么下载,怎么以前可以下载,现在好像不能了呢?针对这个问题,可能该网友还不知道近段时间115网盘关闭了外链分享功能,近期115网盘已经关闭了直接下载服务,也就是说以前可以直接下载,但现在不行了,需要视115网盘的注册会员才... 更多
    --2022-12-02
  • 快乐赚是由正规公司经营的网赚第一平台,倡导快乐上网、快乐赚钱的理念,致力于为乐友们提供快速真实可靠的赚钱项目,让每一位乐友在快乐赚享受到轻松娱乐的同时,快速拿到奖励。只要有空余时间,即可免费注册账户,通过游戏试玩,打码,体验广告等方式赚取乐... 更多
    --2022-12-02
  • LED条屏是,一般用做户外活动的店铺广告屏。那么led条屏怎么控制?led条屏控制方法是什么呢?下面为大家详细介绍Led条屏控制系统操作方法,赶紧学习吧。... 更多
    --2022-12-02
  • 爱奇艺会员怎么开通?方法一:1、打开爱奇艺官网的首页,如下图,选择右上角的“开通VIP”。2、这时,会弹出一个登录爱奇艺的界面,如下图。当然了你如果没有爱奇艺的账号,你也可以使用合作账号,如QQ,微博登录,也可以注册一个的... 更多
    --2022-12-02
  • windows live id 注册方法:1、搜索live ID注册,登录到页面找到创建账户。2、点击“创建账户”,进入到下面的页面,输入邮箱和密码。3、点击下一步按钮。... 更多
    --2022-12-02
  • 发放优惠券是商家招揽吸引顾客的好方法。不少朋友喜欢领取优惠券,这样可以省下一些钱。那么微店优惠券怎么发放?下面就给大家介绍一下微店优惠券发放方法,一起来看看吧。微店是提供让微商玩家入驻的平台... 更多
    --2022-12-02
  • bt种子的使用方法:步骤1、常用BT下载软件:、BitComet是基于BitTorrent协议的p2p免费软件、比特精灵Bit Spirit、BitTorrent最早期最原始的BT客户端工具。步骤2、这里用大家都安装的迅雷来学习bt种子怎么用,打开迅雷... 更多
    --2022-12-02
  • 怎么转换视频格式?方法一:Win 7 操作系统让文件显示扩展名的方法:1、开始--计算机--组织--文件夹选项--查看--把“隐藏已知文件类型的扩展名”前的“√”去掉--按下确定这样,再查看文件,就可以看见扩展名了。... 更多
    --2022-12-02

热门标签  给您最快捷的浏览方式!

  • quickoffice怎么用

    有了Quickoffice和Google帐户,用户可以:创建和编辑Word文档、Excel电子表格、PowerPoint演示文稿,在Google云端硬盘和您的移动设备上访问文件,打开与查看PDF文件,通过以前共享的 Google云端硬盘文件夹共享文件,为电子邮件添加附件。...

    2022-12-02
  • 全民WiFi怎么玩?全民WiFi怎么用?

    腾讯全民wifi这款软件现在很火,它的公测自然也是让引人注目。那么全民WiFi怎么玩?腾讯全民wifi能覆盖室内半径30米内的区域,并可以支持32部无线设备同时上网,这款腾讯全民WiFi怎么用呢...

    2022-12-02
  • 翻译软件哪个好

    transmate:ransmate翻译软件作为一个受大众欢迎,评价最高,最具发展,涉猎众多领域的一个翻译软件,凭借其强大的语料库,术语库,集系统管理,教学管理,翻译实训于一体,综合项目管理、原文预览、伪翻译、预翻译、排版、翻译记忆、拼写检查、低错检查、在...

    2022-12-02
  • 大智慧无法登陆怎么办

    大智慧证券信息平台是一套用来进行证券行情显示、行情分析、外汇及期货信息,并同时进行信息即时接收的超级证券信息平台。面向证券决策机构和各阶层证券分析、咨询、投资人员,并特别关注广大股民的使用习惯和感受。...

    2022-12-02
  • 朋友圈怎么设置只让一个人看

    朋友圈设置只让一个人看的方法,1、点击从通讯录中选择,选择好友后,点击右上角完成。2、回到朋友圈编辑页面后就能看到下方谁可以看列表中显示的他了。3、然后编辑好朋友圈内容发布即可。

    2022-11-08
你已经赞过了