js函数调用的方式


Posted in Javascript onMay 06, 2014

Js函数调用的方式有如下几种情况:

(1)具名函数直接调用

function foo()
  {
  }
  foo();

(2)匿名函数通过引用来调用

  fooRef = function()
  {
  }
fooRef();

(3)没有引用的匿名函数调用1

(function()
 {
}());

(4)没有引用的匿名函数调用2

 (function()
 {
 })();
 

 (5)没有引用的匿名函数调用3
 

 void function()
 { }();

js函数调用的方式

图1.1,图1.2表明了这两种表达式的运算过程是不一样的,图1.1中是用强制运算符使函数调用运算得以执行,图1.2中则用强制运算符运算"函数直接量声明"这个表达式,并返回一个函数自身的引用,然后通过函数调用运算"()"来操作这个函数引用。而上面的最后一个匿名函数调用void function(){}();则用于调用函数并忽略返回值,运算符void用于使其后面的函数表达式执行运算。如果我们不使用"void"与强制运算"()",代码能否执行:

(1)function(){}()

//使用''()"强制调用

(2)function(){}();

//使用";"来执行语句

脚本引擎会认为function(){}是函数声明,从而通不过语法检测,代码被解析成这样:

function(){};();

function(){}被作为声明被解释,而"();"被独立成一行来解释,因而会报语法错误,为什么知道是"();"导致的错误?我们改成如下代码:

function(){}(1);

这样就会被引擎解释为:

fucntion(){};

(1);

//单值表达式

因而通过了语法检测...

Javascript 相关文章推荐
JS控制表格隔行变色
Jun 26 Javascript
IE浏览器打印的页眉页脚设置解决方法
Dec 08 Javascript
js计算精度问题小结
Apr 22 Javascript
JSON取值前判断
Dec 23 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
利用 spin.js 生成等待效果(js 等待效果)
Jun 25 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 Javascript
微信小程序之圆形进度条实现思路
Feb 22 Javascript
看看“疫苗查询”小程序有温度的代码
Jul 31 Javascript
JavaScript中将值转换为字符串的五种方法总结
Jun 06 Javascript
el-form 多层级表单的实现示例
Sep 10 Javascript
js使用ajax读博客rss示例
May 06 #Javascript
Android中的jQuery:AQuery简介
May 06 #Javascript
JavaScript获取table中某一列的值的方法
May 06 #Javascript
jQuery判断元素是否存在的可靠方法
May 06 #Javascript
js图片自动轮播代码分享(js图片轮播)
May 06 #Javascript
简单的js图片轮换代码(js图片轮播)
May 06 #Javascript
jQuery is()函数用法3例
May 06 #Javascript
You might like
PHP中基本符号及使用方法
2010/03/23 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
babel基本使用详解
2017/02/17 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
vue cli 全面解析
2018/02/28 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
Python中如何引入第三方模块
2020/05/27 Python
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
超市促销活动方案
2014/03/05 职场文书
幼儿园秋游感想
2014/03/12 职场文书
招股说明书范本
2014/05/06 职场文书
企业总经理任命书
2014/06/05 职场文书
小学生常见病防治方案
2014/06/06 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
仰望星空观后感
2015/06/10 职场文书