JavaScript 函数调用时带括号和不带括号的区别

简介: function fun() { return 1;}var a = fun;var b = fun();JavaScript中我们把下面的代码叫做函数:function fun() { return 1;}函数是一种叫做function引用类型的实例,因此函数是一个对象。对象是保存在内存中的,函数名则是指向这个对象的指针。var
function fun() {
    return 1;
}
var a = fun;
var b = fun();

JavaScript中我们把下面的代码叫做函数:

function fun() {
    return 1;
}

函数是一种叫做function引用类型的实例,因此函数是一个对象。对象是保存在内存中的,函数名则是指向这个对象的指针。

var a = fun 表示把函数名fun这个指针拷贝一份给变量a,但是这不是指函数本身被复制了一份。
即:a是fun函数,b是1

如果函数名后面加上圆括号就表示立即调用(执行)这个函数里面的代码(花括号部分的代码)。

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

例如:

window.onload=init;

init函数并不会在这行代码时就执行,浏览器加载文档时这句话会被加载,会被告知文档加载完要执行哪个函数,但实际上没有当时就执行,等到整个文档加载完成之后才会通过init这个指针去执行init()。

小注:本文部分内容参考:
https://www.zhihu.com/question/31044040
http://blog.csdn.net/yyx19941129/article/details/49642515

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

目录
相关文章
|
24天前
|
缓存 JavaScript 前端开发
在js中get和post的区别
在js中get和post的区别
30 0
|
1月前
|
JavaScript
JS中防抖和节流的区别是什么
JS中防抖和节流的区别是什么
16 0
|
20天前
|
前端开发 JavaScript
前端JavaScript中的 == 和 ===区别,以及他们的应用场景,快来看看吧,积累一点知识。
等于操作符用两个等于号( == )表示,如果操作数相等,则会返回 true
|
24天前
|
前端开发 JavaScript Java
Java和JavaScript多个方面的区别和联系
Java和JavaScript多个方面的区别和联系
19 1
|
1月前
|
存储 JavaScript 前端开发
JavaScript 中 Set 和 Map 的区别
JavaScript 中 Set 和 Map 的区别
11 0
|
1月前
|
JavaScript 前端开发
JavaScript 中类和构造函数的区别
JavaScript 中类和构造函数的区别
13 0
|
1月前
|
JavaScript 前端开发
JavaScript 中 == 和 Object.is() 的区别
JavaScript 中 == 和 Object.is() 的区别
|
1月前
|
移动开发 JavaScript 小程序
uni-app和Vue.js有什么区别?
uni-app和Vue.js有什么区别?
13 0
|
1月前
|
JavaScript 前端开发 API
jquery是什么-是否还有必要学-与JS的区别-学习技巧-文末附资料、案例、作业
jquery是什么-是否还有必要学-与JS的区别-学习技巧-文末附资料、案例、作业
20 0
|
1月前
|
JavaScript 前端开发
Js中浅拷贝和深拷贝有什么区别,如何实现?
在 JavaScript 中,浅拷贝(Shallow Copy)和深拷贝(Deep Copy)是两种常见的数据拷贝方式,它们的区别在于拷贝的程度
13 0

相关产品

  • 云迁移中心