/*
闭包的定义:一个内部函数里变量作用域生命周期延续,直接访问一个函数里面的私有属性
闭包的作用:解决变量作用域延续的问题,同时解决全局变量冲突的问题
*/ //1、定义内部函数,私有函数
function sum(){ //函数是一种数据类型
var a = 100;
//内部函数
function get(){
return a;
}
return get;
} var count = sum(); //返回的是一种function的数据类型 /*
2.闭包的第二种形态:回调函数,属性和方法的外调,
插件开发中常用,比如经典的jQuery,大公司需要开发的插件等等
*/ function tzEvent(id,event,callback){
var title = "我是一个窗口哦!";
document.getElementById(id)["on"+event] = function(){
console.log(this.innerHTML);
if(callback) callback(title);
};
} tzEvent("btn","click",function(title){
console.log(title);
}); //3.function是一种数据类型,在调用()的时候编译和运行函数体的内容
function test(){
var arr = [];
for(var i=0;i<3;i++){
/*
小小作用域,会把function赋值给arr,
但是i值不会return,因为没有被调用
而且i的值最后的结果会被牵引约束
*/
arr[i] = function(){
return i;
}
}
return arr;
} var arr1 = test();
console.log(arr1[0]()+"---"+arr1[1]()+"---"+arr1[2]());
//结果是 3---3---3 具体运行过程可以再谷歌浏览器控制台debug /*4.闭包最好的表现形式,是一个及时函数
解决一个全局变量互相牵引或者约束的行为 定义变量,难免会重名,在开发中除非
万不得已的情况是不允许使用全局变量的,
即使使用也需要定义特殊的名字,防止全局污染
*/
(function(b){
var a = 100;
console.log(a+"==="+b)
})(200); //小结:关于闭包的用法,以后有空再整理出来

  

  

js闭包初体验的更多相关文章

  1. node.js + express 初体验【hello world】

    [node.js]  一个神奇的XX 呵呵 :) 不知道怎么形容他才好! [express] 是node.js 开发web应用程序的框架 开发环境:XP 大家共同进步吧 :) 一:前期准备: 1:下载 ...

  2. (转)js闭包初入门

    先看一段JS代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 function a(){             var num = 0;             function  ...

  3. Node.js入门初体验

    今天有一个类似网络爬虫的需求,本来打算用我还算熟悉的asp或者asp.NET来做这个事情,但是写了这么长时间js,asp的语法实在不喜欢,VS又早被我卸掉了,思来想去打算用一下最近比较火的Node.j ...

  4. Node.js 安装 初体验(1)

    1.安装nodejs http://nodejs.org/download/  自动根据系统下载自己的版本node.js 2.环境变量 windows 安装,不需要配置环境变量   mac安装后,会提 ...

  5. 闭包初体验 -《JavaScript面向对象编程指南》

    下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 参考<JavaScript面向对象编程指南> 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函 ...

  6. 【Node.js】初体验之安装和HelloWorld

    听说Node.js是个蛮吊的东东.中午休息时间有限,暂时看了下知道怎么安装和初步使用了. 1.安装: 到Node.js官网下载就可以了,才5M多点,双击后按步骤安装就可以了. 2."Hell ...

  7. Node.js 的初体验

    例子1: 1.首先第一步 :要 下载 node.js. 官网 上可以下载 下载完后,是这个玩意. 2. 打开 node.js ,然后输入 // 引入http模块 var http = require( ...

  8. Node.js 网页瘸腿爬虫初体验

    延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器 ...

  9. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

随机推荐

  1. 【spring bean】 spring中bean之间的引用以及内部bean

    在spring中会有如下的几种情况: 1.在当前容器中,(即在spring.xml这一个配置文件中),一个bean引用了另一个bean. 使用 1>  <ref  bean="另 ...

  2. JDK AIO编程

    NIO2.0引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现.异步通道提供两种方式获取获取操作结果. 通过java.util.concurrent.Future类来表示异步操作的结 ...

  3. express-2 express介绍

    脚手架 大多数项目都需要一定数量的"套路化"代码,所有可以创建一个通用的项目骨架,每次开始新项目时,只需复制这个骨架,或者说是模板. RoR把这个概念向前推进了一步,它提供了一个可 ...

  4. Oil Deposits(dfs)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  5. 6754 Keyboard of a Mobile Telephone

    /*实践再次说明ch=getchar()的速度非常慢*/ /*大水题,不解释*/ #include<stdio.h> #include<string.h> int main() ...

  6. 不同java 版本的新功能

    Java 5 泛型 自动装箱/拆箱 增强的for 类型安全的枚举 可变参数 静态导入 Annotation Concurrent Package Java 6 Web Service 支持Annota ...

  7. figure元素

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. BZOJ2061 : Country

    记忆化搜索,设$f[i][j]$表示符号$i$一开始kmp指针为$j$,中间匹配了多少次,$g[i][j]$则表示匹配结束后kmp指针的位置. 时间复杂度$O(nl^2)$. #include< ...

  9. JStorm之Nimbus简介

    本文导读: ——JStorm之Nimbus简介 .简介 .系统框架与原理 .实现逻辑和代码剖析 )Nimbus启动 )Topology提交 )任务调度 )任务监控 .结束语 .参考文献 附:JStor ...

  10. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...