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图片预加载 JS实现图片预加载应用
Dec 03 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
深入理解JavaScript编程中的原型概念
Jun 25 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
解决Extjs下拉框不显示的问题
Jun 21 Javascript
vue.js组件之间传递数据的方法
Jul 10 Javascript
使用node.js对音视频文件加密的实例代码
Aug 30 Javascript
JS实现十字坐标跟随鼠标效果
Dec 25 Javascript
vue 微信授权登录解决方案
Apr 10 Javascript
在Mac下彻底卸载node和npm的方法
May 16 Javascript
vue与iframe之间的信息交互的实现
Apr 08 Javascript
jQuery实现简单飞机大战
Jul 05 jQuery
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基础知识:类与对象(5) static
2006/12/13 PHP
PHP 彩色文字实现代码
2009/06/29 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
详解Python字符串切片
2019/05/20 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
python 实现简易的记事本
2020/11/30 Python
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
作为网站管理者应当如何防范XSS
2014/08/16 面试题
学习党章思想汇报
2014/01/07 职场文书
保护环境倡议书100字
2014/05/19 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
鸡毛信观后感
2015/06/11 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android