javascript匿名函数 闭包
匿名函数
(function(){
console.info("111111111");
})();
var my = (function(){
return "11111111";
})();
函数里放匿名函数叫闭包
function my(){
return function(){
return "张三";
}
}
console.info(my()());
闭包的优点,避免使用全局变量,提供访问局部变量
//把局部变量保存起来
function box(){
var age = 100;
return function(){
age++;
return age;
}
}
var b = box();
b();
b();
b();
function box1 (){
var arr = [];
for(var i=0;i<5;i++){
arr[i] = (function (num){
return num;
})(i)
}
return arr;
}
var my = function(){
return "11111111";
}();
闭包在全局是指向window,
var name ="全局";
var user ={
name:"张三",
getUser:function(){
var that = this;
return function(){
return that.name;//返回user对象的属性,而不是全局
}
}
}
块级作用域,(function(){
})();
function box(){ var arr = []; for (var i=0;i<5;i++) { arr[i] = (function(num){
//有时arr[i] 需要经过函数复杂计算,闭包的用处
return num; })(i); }
return arr; }
闭包this指向window
var name = "window";
var box = {
name:"box",
getName: function(){
//这里的作用域指向box
var that = this;
return function(){
//这里的作用域指向window
return that.name;
}
}
} alert(box.getName()());
var name1 = "1212";
(function(){
var name1 = "张三"
alert(this.name1);//指向window })();
//块级作用域,变成私有作用域
function Box(){
var name = "张三";//私有变量外部无法访问
function eat(){//私有方法外部无法访问
return "吃饭";
}
this.run = function(){//公有方法共外部调用
return name +eat();
}
}
最新文章
- jQuery fsBanner 手风琴
- 什么是XA事务
- php基础之gd图像生成、缩放、logo水印和简单验证码实现
- 奥迪--Q3
- How Do I Declare A Block in Objective-C?
- 关于Log4j的初始化
- android 4.3源码编译
- iOS NSData简单解析
- 转:Ubuntu12.04 LTS 使用心得-开机挂载其他分区
- POJ 1755 Triathlon
- OpenCV视屏跟踪
- 三种预处理器px2rem
- python学习之爬虫(一) ——————爬取网易云歌词
- 手机端 图片的移动缩放旋转兼容touch
- bzoj 3571: [Hnoi2014]画框
- Bootstrap中关闭第二个模态框时出现的问题和解决办法
- 【转】mysql数据库优化大全
- Cocos Creator (webgl模式下怎么让canvas背景透明)
- WatchDirService 实时监控
- tomcat 内存溢出处理方案