JS 中函数名后面加与不加括号的区别

1         a.onmouseover = fn1;
2         a.onmouseout = fn2;
3         function fn1(){
4             div.className = "erweima show";
5         }
6         function fn2(){
7             div.className = "erweima hide";
8         }

只要调用函数进行执行,都必须加括号。

函数是一个对象,函数名是指向这个对象的指针。

函数名后面加上括号就表示立即调用执行这个函数里面的代码。

使用不带圆括号的函数是访问函数的指针,而非调用函数。

函数名后面加括号,就直接执行函数返回值。

函数名后面不加括号,表示函数名赋值给click等的事件,触发click事件时才会执行此函数名对应的函数。

原文地址:https://www.cnblogs.com/knuzy/p/8728894.html

时间: 2024-11-05 16:24:59

JS 中函数名后面加与不加括号的区别的相关文章

MFC中函数名前加 :: 原因

在开发MFC之前,开发的是以AFx(Application Frameworks,x是没有什么意义的)开头的一些函数.但是那个时候开发的函数并没有进行封装,但是有很多很有用的函数.最后AFx开发失败,于是就转而开发MFC.但是对于在AFx中一些有用的函数,希望能够放在里面用.于是就放在最外层.但是在里面的类中也有一些和它同名的函数.于是如果想调用最外层的函数,就需要在函数名加两个冒号来进行识别.--外面的也就是全局的.如果不加,就是调用里层的函数.

JS中函数名与变量名冲突

在JS中如果函数名与变量名冲突,JS是怎么执行的... function a(){ console.log(12); } a() var a = 10; console.log(a); JS会先把变量的声明放在最前面,然后将定义式函数放在变量声明的后面,后面赋值语句按原来的顺序I依次执行. 因此上面的代码等价于 var a; function a(){ console.log(12); } a(); a = 10; console.log(a); 因此结果是12   10.

JS中函数名与函数名()的区别

初学JS中,遇到一个问题.代码如下" <script type="text/javascript"> var fn=function(){   alert("你好");   setTimeout(fn,2000);  }; fn();  </script> 此代码是在页面每个两秒弹出提示框"你好".  但是将setTimeout(fn,2000)改为setTimeout(fn(),2000),则是没有间隔的弹出提

函数基础重点掌握内容:创建函数、return返回单个值、return返回多个值、函数名加括号与不加括号的区别

##比较两个数大小 #有参函数!!! def compare(s,t): if s > t: print(s) else: print(t) f=compare compare(1000,30) f(1800,30) """有几个参数传几个参数,形参对应实参,一个也不能少""" ''' 2.函数名加括号与不加括号的区别: 函数名加括号与不加括号的区别: --在这个函数中,return返回的是inner, 内部其实是返回inner函数的运行结

js调用函数时加括号与不加括号的区别

函数名其实就是指向函数体的指针 不加括号, 可以认为是查看该函数的完整信息, 不加括号传参,相当于传入函数整体 加括号 表示立即调用(执行)这个函数里面的代码(花括号部分的代码) 例2: function demo(){    return 1}var a=demovar b=demo()a是demo函数,b是1

对JS中函数的理解

函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能) var fn=function(a){return a+100;} fn=function(a){return a+200;} alert(fn(100)); //300 要访问函数的引用(指针)而不是执行函数时,必须去掉圆括号,加上圆括号表示访问函数执行后的结果 函数体内部的语句在执行时,一旦

关于js中函数的调用问题

js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的就是myval指向的那个函数: 关于js中函数返回值的获取 var myval = 函数名(): 此刻myval 的值则是函数的返回值,若函数没有有返回值,则myval则被赋予undefine.

js中函数参数值传递和引用传递

js中函数参数值传递和引用传递:在阅读本章节之前建议参阅一下两章节:1.值类型可以参阅javascript的值类型一章节.2.引用类型可以参阅javascript的引用类型一章节.一.函数传递值类型:代码实例如下: function addNum(num) { num+=10; return num; } var num=10; var result=addNum(num); console.log(num); console.log(result); 以上代码的弹出值分别为:10和20,下面进

JS中函数声明与函数表达式的不同

Js中的函数声明是指下面的形式: function functionName(){ } 这样的方式来声明一个函数,而函数表达式则是类似表达式那样来声明一个函数,如: var functionName = function(){ } 可能很多朋友在看到这两一种写法时会产生疑惑,这两种写法差不多,在应用中貌似也都是可行的,那他们有什么差别呢? 事实上,js的解析器对函数声明与函数表达式并不是一视同仁地对待的.对于函数声明,js解析器会优先读取,确保在所有代码执行之前声明已经被解析,而函数表达式,如同