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 相关文章推荐
CSS+JS构建的图片查看器
Jul 22 Javascript
JavaScript调用Activex控件的事件的实现方法
Apr 11 Javascript
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
js实现支持手机滑动切换的轮播图片效果实例
Apr 29 Javascript
JavaScript每天定时更换皮肤样式的方法
Jul 01 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
jQuery表单验证插件解析(推荐)
Jul 21 Javascript
AngularJS  ng-repeat遍历输出的用法
Jun 19 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
Nov 09 Javascript
vue项目刷新当前页面的三种方法
Dec 04 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
微信小程序如何实现点击图片放大功能
Jan 21 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
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
python求最大连续子数组的和
2018/07/07 Python
python高阶爬虫实战分析
2018/07/29 Python
Python基础知识点 初识Python.md
2019/05/14 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
python 贪心算法的实现
2020/09/18 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
使用Python封装excel操作指南
2021/01/29 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
优秀电子工程系毕业生求职信
2014/05/24 职场文书
争先创优活动总结
2014/08/27 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers