`

JS函数中带与不带括号的区别

    博客分类:
  • JS
 
阅读更多
JS函数中带与不带括号的区别
其实总结起来如下:
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。



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


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


get 是函数自身, get() 是运行函数

var x=get;

那么 x 和 get 是等同的

var x=get();

那么 x 是 函数 get 的返回值

例如

function get(){return 1}
var x=get(); 那么 x 就等于 1 咯

如果是

var x=get;

那么

var y=x(); 和 var y=get(); 都是等价的。
.







分享到:
评论

相关推荐

    基于js里调用函数时,函数名带括号和不带括号的区别

    下面小编就为大家带来一篇基于js里调用函数时,函数名带括号和不带括号的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    计算器运算逻辑实现(带括号,求余,乘方,加减乘除),不使用eval函数-前端JavaScript 源码实现-括号匹配与初等运算

    计算器括号匹配与初等运算,包含HTML/CSS/JS

    javascript帮助文档 参考技术

    JScript 是 Microsoft 公司对 ECMA...某些函数根本不带任何参数,而其他函数带一个或者多个参数。在某些函数中,参数的个数取决于如何使用该函数。 Jscript 支持两种函数:一类是语言内部的函数,另一类是自己创建的。

    Javascript 匿名函数及其代码模式原理

    也许知道后面的圆括号是执行前面的函数,而并不清楚前面的圆括号具有何种含义!本文将带你了解匿名函数的代码模式原理。 OK,先来看看更多匿名函数调用模式: 代码如下: (function(){alert(1);}()) (function...

    JavaScript完全自学宝典 源代码

    Calculate1.java 计算浮点数运算结果并调用页面中JavaScript函数的Applet。 Calculate1.class Calculate1.java的字节码文件。 第16章(\c16) 示例描述:介绍JavaScript访问本地文件的各种方法。 16.1....

    avascript中的自执行匿名函数应用示例

    Javascript中的自执行匿名函数 格式: (function(){ //代码 })(); 解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号...

    JavaScript经典实例

     第6章使用JavaScript函数构建重用性  6.0简介  6.1创建一段可重用的代码  6.2把单个数据值传递到函数  6.3把复杂的数据对象传递给函数  6.4创建一个动态运行时函数  6.5把一个函数当做参数传递给另一个函数 ...

    index.js123456

    js文件/以上代码中,我们把say函数作为execute函数的第一个变量进行了传递。 //这里的传递的不是say的返回值,而是say的本身!...//execute可以通过调研someFunciton()带括号的形式来使用say函数。

    json的介绍 以及 json2.js的用法

    值在JSON中不代表任何内容,函数与未定义(undefined)被排除在外。 不能确定的数量将被替换为null。为了替代其它的值,可以像下面一样使用替换(replacer)函数 function replacer(key, value) { if (typeof value ...

    JavaScript对象

    7.2、不带参数构造 14 7.3、自定义对象 14 8、RegExp 对象 15 8.1、语法 15 8.1.1直接量语法: 15 8.1.2创建 RegExp 对象的语法: 15 8.1.2.1、参数 16 8.1.2.2、返回值 16 8.1.2.3、抛出 16 8.2、修饰符 16 8.3、方...

    微软JavaScript手册

    lastParen 属性 ($+) 从任意一个正则表达式搜索中返回最后的由括号括起的子匹配(若存在的话)。 lbound 方法 返回在 VBArray 中指定维数所用的最小索引值。 leftContext 属性 ($`) 返回由调用者传递给函数的实际...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part1.rar

     1.3.9 函数的调用和引用(不带括号)   1.4 实例:WYSIWYGJavaScript翻转图   1.5 小结   第2章 创建可重用的对象   2.1 对象中包含什么   2.1.1 继承   2.1.2 理解对象成员   2.1.3 window...

    总结常用的Vue.js指令

    总结常用的Vue.js指令 本文承接: 写给后端工程师看的Vue.js入门 指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的预期值是:单个 ...可以直接获取Vue实例中定义的数据或函数(上面的演示就是这种情况)

    Sphinx:Sphinx是一种高级编译语言,可转换为JavaScript

    狮身人面像一种简单有效的编程语言,可转换为JavaScript。语言功能原始数据类型... func thisIsFunction {}上面的thisIsFunction不带参数,因此周围没有() 。 要接受函数中的参数,请在标识符后添加括号,如下所示: f

    javascript文档

    javascript的官方文档 这些方便实用的信息将帮助您了解 JScript 的各个部分。 在“字母顺序的关键字列表”中,可以找到按字母顺序列出的所有 JScript 语言的主题。如果只需要查看某个主题(例如对象),则有对该主题...

    JS中Eval解析JSON字符串的一个小问题

    JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。 JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右...

    浅谈JavaScript中指针和地址

    个人理解:指针只是指向内存的一个索引;而地址则是内存中确切的位置。... 注意:使用不带圆括号的函数的名是访问函数指针,而非调用函数,所以 sum和anotherSum指向同一个函数,即 sum=null;不影响anotherSum

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part3.rar

     1.3.9 函数的调用和引用(不带括号)   1.4 实例:WYSIWYGJavaScript翻转图   1.5 小结   第2章 创建可重用的对象   2.1 对象中包含什么   2.1.1 继承   2.1.2 理解对象成员   2.1.3 window...

Global site tag (gtag.js) - Google Analytics