首页 > Web开发 > 详细

js函数的非常规调用方式

时间:2015-04-23 13:52:12      阅读:263      评论:0      收藏:0      [点我收藏+]

我们都知道,函数的声明方式有这两种

function fnA(){alert(‘msg‘);}//声明式定义函数
var fnB = function(){alert(‘msg‘);}//函数赋值表达式定义函数

通常,我们调用一个方法的方式就是 FunctionName()

但是,如果我们尝试为一个“定义函数”末尾加上(),解析器是无法理解的。

function msg(){
  alert(‘message‘);
}();//解析器是无法理解的

定义函数的调用方式应该是 msg() ; 那为什么将函数体部分用()包裹起来就可以了呢?

原来,使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。也就是说,任何能将函数变成一个函数表达式的作法,都可以使解析器正确的调用定义函数。而 ! 就是其中一个,而 ~ + - || 等都有这样的功能。

另外,用 ! 可能更多的是一个习惯问题(比双括号省略一个字符),不同的运算符,性能是不同的。


js函数的非常规调用方式

原文:http://my.oschina.net/codespring/blog/405435

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!