专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

function函数

来源:小易整编  作者:小易  发布时间:2022-06-10 05:38
摘要:Function的构造函数可以接收任意数量的参数,但最后一个参数始终被看做函数体。这种方式有个缺点是,会导致解析两次代码,第一次是基础的ES代码解析,第二次是解析传入构造函数中的字符串,这样会导致性能的下降,在此写出是帮助理解js中函数其实是对象这个概念...

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

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

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

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

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

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

function函数

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

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

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

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

function函数

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

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


本文地址:百科问答频道 https://www.neebe.cn/wenda/2448.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编

上一篇:如何使用ai抠图

下一篇:如何申请邮箱

相关文章相关阅读
  • 照片出现扫描仪效果

    照片出现扫描仪效果

    照片出现扫描仪效果?和你的iPhone合体:扫描仪般效果的文件。1登陆AppStore 下载扫描全能王;2打开,跟照相一样,点击下方的照相按钮,对准你要拍摄的文件,拍摄吧!...

  • 硕鼠怎么用

    硕鼠怎么用

    硕鼠怎么用?对于在寻找动漫或影视剧集下载资源比较不在行的孩纸来说,硕鼠就是一个利器,它支持数十个网站视频的下载,而且速度挺快,对于同一资源不同清晰度也可以进行相应的选择,像优酷视频自动分割成几个小段,硕鼠也会在下载之后自动合并,使用起来相当......

  • 360免费wifi要钱吗?360免费wifi真的免费吗?

    360免费wifi要钱吗?360免费wifi真的免费吗?

    360免费wifi不要钱。360免费WiFi是一款Android智能设备必备的WiFi热点管理工具,用户可通过本软件免费接入CMCC、ChinaUnicom、ChinaNet等WiFi热点,配合独有的360度WiFi安全检测和免费WiFi地......

  • 向日葵远程控制软件

    向日葵远程控制软件

    向日葵远程控制是一款面向企业和专业人员的远程PC管理和控制的服务软件。用户在任何可连入互联网的地点,都可以轻松访问和控制安装了向日葵远程控制客户端的远程主机,整个过程完全可以通过浏览器进行,无需再安装软件...

  • 数据恢复软件哪个好

    数据恢复软件哪个好

    数据恢复软件哪个好?数据恢复精灵是数据恢复类软件中后起之秀,但数据恢复精灵的来头可不小,它是国内最早,也是最知名的磁盘分区管理与数据恢复软件 DiskGenius 的开发团队的最新力作,可谓出身名门。...

  • 五笔怎么打

    五笔怎么打

    五笔怎么打?学五笔首先要摆正心态,不要想着有什么速成的方法,或者幻想不用苦练只靠理论的学习就能熟练掌握五笔。学习五笔需要认真苦练,没有三个月的日夜操练,五笔打字是不可能熟练的。...

  • 影音先锋资源怎么搜

    影音先锋资源怎么搜

    xfplay资源搜索方法:步骤1、首先,在百度上搜索影音先锋,进行下载。或者进入上面的官网进行下载。步骤2、下载以后,点击下载好的程序,进行一步步的操作。安装就可以了。步骤3、安装好以后,最重要的就是看电影了,搜xfplay资源了...

  • adobe reader是什么

    adobe reader是什么

    Adobe Reader(也被称为Acrobat Reader)是美国Adobe公司开发的一款优秀的PDF文件阅读软件。文档的撰写者可以向任何人分发自己制作(通过Adobe Acrobat制作)的PDF文档而不用担心被恶意篡改。...

  • 周排行
  • 月排行
  • 年排行

精彩推荐