JS 立即执行的函数表达式(function)写法
1. 前言
函数需要先定义,后使用。 这基本上所有编程语言的一条铁的定律。
一般状况下, 我们需要调用一个JavaScript 函数, 基本的状况都是先定义, 然后再调用。 看一个例子
<!--by oscar999 2013-1-16-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Say Hello</title>
</head>
<body>
<script>//define functionfunction sayHello(){alert("hello");}//call functionsayHello();
</script>
</body>
</html>
但是如果不需要显示调用函数, 让这个函数在定义的时候就执行的话, 该如何写才可以呢?
2. 思考的历程
从以上的例子来看,聪明的你结合以上的使用状况可能会想:
===》既然调用的时候是在函数名后面加上一对 是否在function 定义的后面加上一对大括号是否就可以执行了呢? 像以下这样:
function sayHello(){alert("hello");}();
不幸的是,以上的写法会报出js 的语法错误。
===》 你可能又会想, 如果我在大括号中传入参数是否就会解析成表达式了呢?
function sayHello(){alert("hello");}(1);
的确, 错误是没有了。 但是以上的写法等同于以下写法的效果
function sayHello(){alert("hello");};(1);
这两句完全没有关系, 函数还是不会执行
3. 正确的写法
对于JavaScript 来说,括弧()里面不能包含语句,所以在这一点上,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明
所以, 只要将大括号将代码(包括函数部分和在后面加上一对大括号)全部括起来就可以了。
(function sayHello(){alert("hello");}());
还有一种写法也可以, 就是将后面的大括号移出来, as
(function sayHello(){alert("hello");})();
推荐是使用第一种方式。
但是目前很多比较好的js library 使用的都是第二种方式。
比如: web 图形绘制的: git , draw2d ,....
4. 参考
1. http://benalman.com/news/2010/11/immediately-invoked-function-expression/
JS 立即执行的函数表达式(function)写法相关推荐
- Javascript---Immediately-Invoked Function Expression (IIFE)立即执行的函数表达式
1.一下是几种形式的函数调用: 各种调用的效率:在这编文章中有谈到: http://suqing.iteye.com/blog/1981591 // Either of the following t ...
- js立即调用的函数表达式
1.多种实现 // 下面2个括弧()都会立即执行 (function () { /* code */ } ()); // 推荐使用这个 (function () { /* code */ })(); ...
- matlab 类写法,matlab中函数表达式的写法
一条命令就可以了f=[1 1 5 3];多项式fvalue=polyval(f,6)%求多项式在x=6处的值www.mh456.com防采集. 用来查找a中小5261于0项的位置. y=symsum( ...
- 我去,JS自执行匿名函数竟然有20几种写法!
为什么80%的码农都做不了架构师?>>> 发现一个新的自执行写法: { var x; x=1; alert(x);} //2013-01-30 14:45:57 //五大类,2 ...
- js函数声明和函数表达式的区别
Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实现封装.继承等,也可以让代码得到复用.但事物都有两面性,Javascrip ...
- js调用php函数兵每秒刷新,深入理解JavaScript立即调用函数表达式(IIFE)
立即调用函数 目录一.了解立即调用函数表达式 二.立即调用函数表达式报错了? 三.使用立即调用函数的正确姿势 四.常见使用场景 写在最后 一.了解立即调用函数表达式 1.1 思维导图 1.2 什么是立 ...
- 浅谈自执行函数-立即调用的函数表达式
好文,屯一波:原文地址:https://www.jianshu.com/p/c64bfbcd34c3 在JavaScript中,会遇到自执行匿名函数:(function () {/*code*/} ) ...
- [Javascript 高级程序设计]学习心得记录10 js函数表达式
在前面说对象的时候已经提到了函数对象,对函数的定义参数的传递包括通过argumentd.callee实现递归.这篇博客我会继续深入讲解js中的函数表达式. 一,闭包 关于闭包的概念,可以先看看http ...
- 立即调用函数表达式(立即执行函数)
立即调用的匿名函又被称作是立即调用函数表达式(IIFE,Immemdiataely Inovked Function Expression);它类似函数声明,但由于被包含在括号中,所以会被解释为函数表 ...
最新文章
- Java关键字和保留字
- 附录1:python记事本
- java中的doget_java servlet中doGet()和doPost()方法的用法和区别
- Win2003的DHCP服务器无法提供服务怎么办?
- jenkins换服务器找不到包,服务器重启后Jenkins项目部分丢失问题解决方法
- Leetcode 数据结构与算法题解大全——目录(推荐收藏,持续更新)
- Python可以这样学(第四季:数据分析与科学计算可视化)-董付国-专题视频课程...
- 力扣98. 验证二叉搜索树(JavaScript)
- 模型人的因素_肺癌风险预测模型中纳入肺功能如何?
- UnitTest测试框架全栈详解
- python3.x的改进
- [转]VS2008 集成openCV过程
- 如何将电视机用作 Mac 的显示器?
- linux打包除了某个文件夹,tar打包且排除某个文件
- 国际C语言混乱代码大赛 获奖作品
- lj245a引脚功能图_JRC4558中文资料|引脚图及功能|应用电路图
- 2022 年 8 款最佳待办事项列表应用程序
- 电脑连接无线路由上不了网 连接手机热点却可以上网
- siggraph_SIGGRAPH的Unity
- 小木虫好中的ei期刊图像处理
热门文章
- 行内元素垂直方向位置调整的一些感悟和困惑
- 缓存LruCache简单创建和使用
- attribute property --- jquery attr() prop()
- 除了随机还要进化——对Infinity进一步的想法
- 【方案分享】2022线上云年会云会议玩法全案策划.pptx(附下载链接)
- 【报告分享】2019年大数据行业研究报告.pdf(附下载链接)
- linux下解压7z压缩包分卷
- PRML第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
- 风口上的TikTok?
- java 五大原则_面向对象五大原则