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 相关文章推荐
javascript基础的动画教程,直观易懂
Jan 10 Javascript
javascript 事件绑定问题
Jan 01 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 Javascript
yepnope.js使用详解及示例分享
Jun 23 Javascript
node.js中的fs.realpathSync方法使用说明
Dec 16 Javascript
详细谈谈javascript的对象
Jul 31 Javascript
JS实现漂亮的时间选择框效果
Aug 20 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
学习使用Bootstrap页面排版样式
May 11 Javascript
JavaScript中BOM对象原理与用法分析
Jul 09 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
Aug 03 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
BBS(php & mysql)完整版(五)
2006/10/09 PHP
扩展你的 PHP 之入门篇
2006/12/04 PHP
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
php判断访问IP的方法
2015/06/19 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
Python每天必学之bytes字节
2016/01/28 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
python单例设计模式实现解析
2020/01/07 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
Python字典实现伪切片功能
2020/10/28 Python
Python修改DBF文件指定列
2020/12/19 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
静态变量和实例变量的区别
2015/07/07 面试题
给校长的一封建议书
2014/03/12 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
付款证明模板
2015/06/19 职场文书