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 相关文章推荐
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
Mar 10 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
Jun 19 Javascript
详解AngularJS中的http拦截
Feb 09 Javascript
基于zepto.js简单实现上传图片
Jun 21 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
浅谈React Native 中组件的生命周期
Sep 08 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
jQuery自动或手动图片切换效果
Oct 11 jQuery
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
微信小程序实现全国机场索引列表
Jan 31 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
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之PHP语法学习笔记1
2006/12/17 PHP
php 进度条实现代码
2009/03/10 PHP
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
php验证手机号码
2015/11/11 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
机械电子工程专业自荐书
2014/06/10 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis
python基础之//、/与%的区别详解
2022/06/10 Python