您现在的位置是:首页 > 精选问答 >正文
function函数的返回值(function函数)
发布时间:2022-08-03 13:00:11诸葛毓爱来源:
大家好,我是九个头条网编辑小张,我来为大家解答一下有关function函数的返回值,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函数的理解,希望对大家有所帮助.
本文到此讲解结束,希望通过这篇文章能帮到你。
标签:
猜你喜欢
最新文章
- function函数的返回值(function函数)
- 人参鹿茸泡酒配方5斤(人参鹿茸泡酒配方大全)
- 睛明穴是什么经络(睛明穴)
- 金融与经济是核心期刊吗(时代金融是国内核心期刊吗)
- 时代金融是什么平台(时代金融)
- 日本四大财团的关系(日本四大财团)
- otc甲类和乙类什么区别(otc甲类和乙类的区别)
- 天降之物剧场版发条完整版(天降之物剧场版发条装置之哀女神)
- 什么是特种设备生产单位生产行为(什么是特种设备生产许可证)
- 芯烨标签打印机怎么样(芯烨打印机怎么样 质量如何)
- 包青天之乌盆记包拯(包青天之乌盆记03)
- 什么是o2o两栖人才(什么是o2o)
- 从70元跌到2元的股票(从裸开始)
- 今日电脑截屏怎么截
- 今日密室逃脱大冒险1急速逃亡攻略(《极速逃生-密室》简单版的图文攻略6-10)
- 秦昊一起去爬山是什么电视剧(秦昊一起去爬山什么梗)
- 显示文件后缀名win10(显示文件后缀名)
- 200兆宽带(200兆宽带)
- 手机掉水里了怎么办(手机掉水里了)
- 今日深圳海柴角自驾看日出攻略(徒步海柴角深圳最早观千禧晨光的地方)
- 狼蛛鼠标宏设置(狼蛛鼠标)
- 今日15天天气预报查询一周15天天气预报 新闻15天气预报(天气预报15天查询未来15天天气预报查询)
- 电脑忘记密码简单恢复(电脑忘记密码)
- 今日大连发现王国2021票价(大连发现王国攻略)