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

相关标签:1.JavaScript example
2. Prototypes and Inheritance in JavaScript

引言:function fun() { return 1; } var a = fun; var b = fun(); 在 JavaScript 中,我们称以下代码为函数:function fun() { return 1; } 函数是一种引用类型,因此函数是一个对象。该对象存储在内存中,函数名是指向该对象的指针。var
function fun ( ) {
return 1 ;
}
var a = fun;
var b = fun( );
在 JavaScript 中我们称以下代码为函数:
function fun ( ) {
return 1 ;
}

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


函数是引用类型 function 的实例,因此函数是一个对象。该对象存储在内存中,函数名是指向该对象的指针。
var a = fun 表示将函数名 fun 的指针复制给变量 a,但这并不意味着函数本身被复制。
即:a 是 fun 函数,b 是 1
如果函数名后面带括号,表示立即调用(执行)函数体内的代码(花括号内的代码)。

(JavaScript 函数调用带括号和不带括号的区别)
不带括号时,函数名作为函数的指针使用。函数名是函数的指针,此时不会获取函数的结果,因为函数体代码不会被运行。它只是传递了函数体所在的地址,以便在需要时找到函数体并执行。
例如:
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

版权声明:本文内容由阿里云实名认证用户贡献,版权归原作者所有。阿里云开发者社区不拥有版权,也不承担相应的法律责任。具体规则请参阅“阿里云开发者社区用户服务协议”和“阿里云开发者社区知识产权保护指引”。如发现本社区内容涉嫌抄袭,请填写侵权投诉表单进行举报。一经核实,本社区将立即删除涉嫌侵权的内容。

相关文章

探索更多特惠

  1. Short Message Service(短信)和邮件服务

    50,000 邮件套餐低至 1.99 美元,120 条短信仅需 1.00 美元起

phone 联系我们
你好,我是AI助理。
可以解答问题、推荐解决方案等。