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-Mozilla和IE中的一个函数直接量的问题
Jan 09 Javascript
jQuery 扩展对input的一些操作方法
Oct 30 Javascript
将光标定位于输入框最右侧实现代码
Dec 04 Javascript
js实现选中复选框文字变色的方法
Aug 14 Javascript
JS设置时间无效问题的解决办法
Feb 18 Javascript
使用jQuery操作DOM的方法小结
Feb 27 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
Jun 20 Javascript
vue keep-alive请求数据的方法示例
May 16 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
vue 强制组件重新渲染(重置)的两种方案
Oct 29 Javascript
js实现3D粒子酷炫动态旋转特效
Sep 13 Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 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 FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
网上书店创业计划书
2014/01/12 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
烹饪自我鉴定
2014/03/01 职场文书
作风建设年活动总结
2014/08/27 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
golang 实现时间戳和时间的转化
2021/05/07 Golang
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis