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

 

 

 

 

 

其实总结起来以下:
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。固然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就表明将会执行函数体代码。
不加括号的,都是把函数名称做为函数的指针,用于传参,此时不是获得函数的结果,由于不会运行函数体代码。它只是传递了函数体所在的地址位置,在须要的时候好找到函数体去执行。函数

 

因此通常时候咱们都是采用的是无括号的缘由。这也是因为括号的二义性,由于括号是“函数调用运算符”,至关于在执行这样一个函数,因此产生的问题在理解了以后也就理解了。post


另外:除了两边不加括号,也能够两边都加括号来实现函数的拷贝,而不是执行函数,若是左边无圆括号右边有圆括号,实际就是至关于产生的是一个属性而不是一个方法了,在调用的时候只用属性名或者函数名,而不须要再用函数调用运算符圆括号了,由于它就至关于一个属性,固然也能够用函数调用的方式来调用,加上括号,拿上例子来讲就是若是写成person.sayHello =sayHi(),在调用sayHello的时候就能够直接用person.sayHello或者person.sayHello()了,两者都实现相同的效果。指针

 

 

 

百度知道的回答:blog

函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。固然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就表明将会执行函数体代码。
不加括号的,都是把函数名称做为函数的指针,用于传参,此时不是获得函数的结果,由于不会运行函数体代码。它只是传递了函数体所在的地址位置,在须要的时候好找到函数体去执行。
相关文章
相关标签/搜索