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 相关文章推荐
认识延迟时间为0的setTimeout
May 16 Javascript
小试JQuery的AutoComplete插件
May 04 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
Aug 12 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
May 05 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
探讨JavaScript标签位置的存放与功能有无关系
Jan 15 Javascript
jQuery Position方法使用和兼容性
Aug 23 jQuery
Javascript实现运算符重载详解
Apr 07 Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 Javascript
js实现省级联动(数据结构优化)
Jul 17 Javascript
vue+iview分页组件的封装
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获得当前的脚本网址
2007/12/10 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
Javascript UrlDecode函数代码
2010/01/09 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Django REST framework 分页的实现代码
2019/06/19 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
python 录制系统声音的示例
2020/12/21 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
公证委托书
2014/08/01 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
Pytorch可视化的几种实现方法
2021/06/10 Python
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
4种方法python批量修改替换列表中元素
2022/04/07 Python
Golang连接并操作MySQL
2022/04/14 MySQL