js函数调用的方式
2014-05-06 00:00
786 查看
Js函数调用的方式有如下几种情况:
(1)具名函数直接调用
(2)匿名函数通过引用来调用
(3)没有引用的匿名函数调用1
(4)没有引用的匿名函数调用2
(5)没有引用的匿名函数调用3
图1.1,图1.2表明了这两种表达式的运算过程是不一样的,图1.1中是用强制运算符使函数调用运算得以执行,图1.2中则用强制运算符运算"函数直接量声明"这个表达式,并返回一个函数自身的引用,然后通过函数调用运算"()"来操作这个函数引用。而上面的最后一个匿名函数调用void function(){}();则用于调用函数并忽略返回值,运算符void用于使其后面的函数表达式执行运算。如果我们不使用"void"与强制运算"()",代码能否执行:
(1)function(){}() //使用''()"强制调用
(2)function(){}(); //使用";"来执行语句
脚本引擎会认为function(){}是函数声明,从而通不过语法检测,代码被解析成这样:
function(){};();
function(){}被作为声明被解释,而"();"被独立成一行来解释,因而会报语法错误,为什么知道是"();"导致的错误?我们改成如下代码:
function(){}(1);
这样就会被引擎解释为:
fucntion(){};
(1); //单值表达式
因而通过了语法检测...
(1)具名函数直接调用
function foo() { } foo();
(2)匿名函数通过引用来调用
fooRef = function() { } fooRef();
(3)没有引用的匿名函数调用1
(function() { }());
(4)没有引用的匿名函数调用2
(function() { })();
(5)没有引用的匿名函数调用3
void function() { }();
图1.1,图1.2表明了这两种表达式的运算过程是不一样的,图1.1中是用强制运算符使函数调用运算得以执行,图1.2中则用强制运算符运算"函数直接量声明"这个表达式,并返回一个函数自身的引用,然后通过函数调用运算"()"来操作这个函数引用。而上面的最后一个匿名函数调用void function(){}();则用于调用函数并忽略返回值,运算符void用于使其后面的函数表达式执行运算。如果我们不使用"void"与强制运算"()",代码能否执行:
(1)function(){}() //使用''()"强制调用
(2)function(){}(); //使用";"来执行语句
脚本引擎会认为function(){}是函数声明,从而通不过语法检测,代码被解析成这样:
function(){};();
function(){}被作为声明被解释,而"();"被独立成一行来解释,因而会报语法错误,为什么知道是"();"导致的错误?我们改成如下代码:
function(){}(1);
这样就会被引擎解释为:
fucntion(){};
(1); //单值表达式
因而通过了语法检测...
相关文章推荐
- js函数调用的四种方式
- js函数的非常规调用方式
- js函数调用方式
- 08 js系统函数、js函数调用方式
- 韩顺平 javascript教学视频_学习笔记8_js系统函数_js函数调用方式
- js函数调用方式
- JS函数调用方式
- js函数的四种调用方式以及对应的this指向
- 第25讲 js系统函数 js函数调用方式
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第25讲_js系统函数_js函数调用方式_学习笔记_源代码图解_PPT文档整理
- js函数调用的方式
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
- hive并发调用的运行方式
- java WebService调用方式
- 在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink
- Spring Boot 异步调用方式@Async
- javascript三种函数调用方式
- PHP 调用外部程序的几种方式
- tornado学习笔记(二):如何在tornado中以异步的方式调用同步函数
- C/C++ 通过管道的方式调用Windows ping命令 且 不显示黑窗口(cmd 窗口)