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 覆盖和重载 函数
Sep 25 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
javascript中createElement的两种创建方式
May 14 Javascript
11种ASP连接数据库的方法
Sep 18 Javascript
jquery仿QQ登录账号选择下拉框效果
Mar 22 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
Three.js学习之网格
Aug 10 Javascript
jquery 判断div show的状态实例
Dec 03 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
Aug 30 Javascript
微信小程序自定义底部导航带跳转功能
Nov 27 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/05/12 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
composer.lock文件的作用
2016/02/03 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
解决Python安装cryptography报错问题
2020/09/03 Python
Django如何重置migration的几种情景
2021/02/24 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
珠宝的促销活动方案
2014/08/31 职场文书
教师节班会开场白
2015/06/01 职场文书
小学运动会入场词
2015/07/18 职场文书
护理工作心得体会
2016/01/22 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书