浅谈js中调用函数时加不加括号的问题


Posted in Javascript onJuly 28, 2016

其实总结起来如下:

函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。

不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。

所以一般时候我们都是采用的是无括号的原因。这也是由于括号的二义性,因为括号是“函数调用运算符”,相当于在执行这样一个函数,所以产生的问题在理解了之后也就理解了。

另外:除了两边不加括号,也可以两边都加括号来实现函数的拷贝,而不是执行函数,如果左边无圆括号右边有圆括号,实际就是相当于产生的是一个属性而不是一个方法了,在调用的时候只用属性名或者函数名,而不需要再用函数调用运算符圆括号了,因为它就相当于一个属性,当然也可以用函数调用的方式来调用,加上括号,拿上例子来说就是如果写成person.sayHello =sayHi(),在调用sayHello的时候就可以直接用person.sayHello或者person.sayHello()了,二者都实现相同的效果。

百度知道的回答:

函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。

不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。

以上这篇浅谈js中调用函数时加不加括号的问题 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
菜单效果
Oct 14 Javascript
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
AngularJS入门心得之directive和controller通信过程
Jan 25 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
Apr 14 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
详解用node搭建简单的静态资源管理器
Aug 09 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
Angular6 Filter实现页面搜索的示例代码
Dec 02 Javascript
Vue中的循环及修改差值表达式的方法
Aug 29 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
vue+element-ui JYAdmin后台管理系统模板解析
Jul 28 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 #Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 #Javascript
轮播的简单实现方法
Jul 28 #Javascript
关于JS变量和作用域详解
Jul 28 #Javascript
jquery轮播的实现方式 附完整实例
Jul 28 #Javascript
AngularJS入门教程中SQL实例详解
Jul 27 #Javascript
AngularJS入门教程之表格实例详解
Jul 27 #Javascript
You might like
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
简单介绍Python中的len()函数的使用
2015/04/07 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python Requests 基础入门
2016/04/07 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
美国最大的团购网站:Groupon
2016/07/23 全球购物
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫
Go语言grpc和protobuf
2022/04/13 Golang