js函数自执行
在javascript里,任何function在执行的时候都会创建一个执行上下文,因为function声明的变量和function有可能只在该function内部,这个上下文,在调用function的时候,提供了一种简单的方式来创建自由变量或私有子function。
函数自执行写法:
1.最前最后加括号
(function(){alert();}());//有点是提醒阅读代码的人,这段代码是一个整体。
2.function外面加括号
(function(){alert();})();
3.function前面加运算符,常见的是!和void
!function(){alert();}();
void function(){alert();}();
使用案例:
var counter=(function(){
var i=0;
returen{
get:function(){
return i;
},
set:function(){
i=val;
},
increment:function(){
return ++i;
}
};
}());//创建一个立即调用的匿名函数表达式,returen一个变量,其中包含要暴露的东西,返回的这个变量将赋值给counter,而不是外面声明的function函数。
counter.get();//0
counter.set(3);
counter.increment();//4
counter.increment();//5
counter.i;//undefined 因为i不是返回对象的属性
i;//引用错误,i没有定义(因为i只存在于闭包)
(function(){
//code,运行的代码
})();//在js中()有两种含义,一个是运算符,一个是分隔符。这里的第一个是分隔符,表示里面的函数是一个部分。后面的是运算符,表示里面的函数要运行,相当于定义完一个匿名函数后就让它直接运行。
js函数自执行的更多相关文章
- (转)在网页中JS函数自动执行常用三种方法
原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中 ...
- 在网页中JS函数自动执行常用三种方法
在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT LANGUAGE="JavaScript"> function ...
- 在JS函数中执行C#中的函数、字段
1.调用字段 cs文件的代码: ; protected void Page_Load(object sender, EventArgs e) { id = ; } js页面的代码: function ...
- JS函数自动执行
关于让网页中的JavaScript函数自动执行,方法就多洛,但是万变不离其宗,下面给大家介绍一下! 前提条件,网页中必须有JS函数代码,或者,使用文件导入的方法也行: 在HTML中的Head区域中,有 ...
- 学习js函数--自执行函数
我在写代码时候经常会在tpl的<script>里写类似的代码: $(function(){ alert("我好饿"); }); 刚开始的时候只知道写了它不需要调用,直接 ...
- 如何使js函数异步执行
CallbacksCallbacks使用场景在哪里?在很多时候需要控制一系列的函数顺序执行.那么一般就需要一个队列函数来处理这个问题: function Aaron(List, callback) { ...
- 当call/apply传的第一个参数为null/undefined的时候js函数内执行的上下文对象是什么呢?
如题:在js中我们都知道call/apply,还有比较少用的bind;传入的第一个参数都是改变函数当前上下文对象;call/apply区别在于传的参数不同,一个是已逗号分隔字符串,一个以数组形式.而b ...
- js函数延迟执行
function delay(value){ //全局变量保存当前值 window._myTempDalayValue = value; setTimeout(function(){ //延时之后与全 ...
- js中当call或者apply传入的第一个参数是null/undefined时,js函数内执行的上下文环境是什么?
在js中我们都知道call/apply,还有比较少用的bind;传入的第一个参数都是改变函数当前上下文对象; call/apply区别在于传的参数不同,一个是已逗号分隔字符串,一个以数组形式.而bin ...
随机推荐
- 【转】用CSS代码写出的各种形状图形的方法
一共收集整理了图形20个,比较实用,同时也为了熟悉CSS的代码.整合了一下,有错误欢迎指出. 1.正方形 #square {width: 100px;height: 100px;background: ...
- json数据传输有感
必须把object对象o给JSON.stringify(o) json字符串化 传到后台 前台js的对象某属性如果是Array 那后台就是Long[] idsArray 这种bean的属性对应 然 ...
- sql语句感想
select出来内容可以当成表拿来用,,比如取别名什么的. union是纵向的,追加记录(行) join on是横向的,追加列
- Java Thread线程控制
一.线程和进程 进程是处于运行中的程序,具有一定的独立能力,进程是系统进行资源分配和调度的一个独立单位. 进程特征: A.独立性:进程是系统中独立存在的实体,可以拥有自己独立的资源,每个进程都拥有自己 ...
- Leetcode: Water and Jug Problem && Summary: GCD求法(辗转相除法 or Euclidean algorithm)
You are given two jugs with capacities x and y litres. There is an infinite amount of water supply a ...
- UISearchController的使用
- (void)addSearchController { _searchController = [[UISearchController alloc] initWithSearchResultsC ...
- Repeater 时间格式化
Repeater 时间格式化 <%# Eval("AboutDate","{0:yyyy-MM-dd hh:mm:ss}")%> 个人认为最好用 ...
- 手机端js模拟长按事件(代码仿照jQuery)
代码编写: $.fn.longPress = function(fn) { var timeout = undefined; var $this = this; for(var i = 0;i< ...
- yii2获取登陆的用户名
yii2获取登陆的用户名: yii::$app->user->identity->username; 判断用户名是否登陆 if(Yii::$app->user->isGu ...
- sql语句中where和having的区别
WHERE语句在GROUPBY语句之前:SQL会在分组之前计算WHERE语句. HAVING语句在GROUPBY语句之后:SQL会在分组之后计算HAVING语句.