文档章节

js--This+绑定作用域+块+闭包

唐荣
 唐荣
发布于 2014/11/04 07:12
字数 415
阅读 42
收藏 0

【1 This 关键字

// This 关键字 在javascript里的使用
//this关键字总是指向调用者,谁调用函数,this就指向谁
//var x = 5; // window.x = 5 ;
//function test(){
//	alert(this.x);	
//};
//test.x = 10;
////alert(test.x);
//window.test();

【2 call apply 主要作用是绑定作用域】

// call apply 主要作用是绑定作用域
//var color = 'red';
//var obj = {color:'yellow'};
//
//function showColor(x,y,z){
//	alert(x+y+z);
//	alert(this.color);
//};
//// call、apply 绑定一个函数 ,到你指定的作用域内执行
////showColor.call(obj,10,20,30);
////showColor.apply(obj,[2,3,4]);

【3 块的概念:】

//块的概念:
//function test(){
//	(function(){
//		for(var i = 1 ;i <=5 ; i++){
//			alert(i);
//		}	
//	})();
//	alert(i); //如果没有块的概念,没有(function)()去包裹for循环,那么i没有被回收,所以alter(i)还是可以打印。
	()() 定义一个匿名函数,块的概念。
	(function(){

//	})()
//};
//test();

【4 闭包

// 闭包 :执行环境、作用域链、js垃圾回收[存储变量]test()(),第二个()执行命令。
// 函数碰到return直接返回、没有renturn 返回结果undefined
// 在javascript语言里: 更不提倡使用全局变量 (1:不安全、2:做变量搜索查找的时候效率比较低)
//function test(){
//	return function(){
//		alert('我是闭包体代码...');
//	};
//};
//var f = test(); , f 就是一个闭包的函数。function
////alert(typeof f);
//f(); 打印我是闭包体代码...

//function test(){
//	var temp = 10 ;
//	return function(){
//		alert(temp);
//	};
//};
//test()(); //还能打印出temp = 10,取得temp值。

//var i = 0 ; 避免使用全局变量
//
//function test(){
//	alert(++i);
//};

// 避免使用全局变量 点击按钮 统计点击的次数,替换使用全局变量var i =0 ;
//var inp = (function(){
//	var i = 0;
//	return {
//		getCount:function(){
//			alert(++i);
//		}
//	};
//})();//块{var i } 如何调用 inp.getCount();


© 著作权归作者所有

上一篇: JSON对象
唐荣
粉丝 0
博文 17
码字总数 4081
作品 0
成都
高级程序员
私信 提问
原生javascript学习:javascript闭包实例

之前看zakas的Professional JavaScript,读过闭包的章节,当时觉得理论上是理解了,把书上的案例都实践了一遍。但例子是纯粹控制台调试实现的,印象不深刻,今天练习原生javascript的时候碰上...

黎宇浩
2012/06/15
0
0
【前端工程师手册】JavaScript作用域拾遗

【前端工程师手册】JavaScript作用域拾遗 昨天总结了一些作用域的知识【前端工程师手册】JavaScript之作用域,但是发表完发现忘记了一些东西,今天拾个遗。 昨天说到了JavaScript中没有块级作...

推荐码发放
2018/05/17
0
0
web前端学习:深入理解JS闭包

第一部分:初遇闭包 http://www.runoob.com/js/js-function-closures.html 什么是闭包?闭包有什么作用?这是我遇到闭包时的第一反应。 闭包在JavaScript高级程序设计(第3版)中是这样描述:...

IT智云编程
2018/07/24
0
0
这一次,我们换种姿势学习 javascript

前言 《你不知道的 javascript》是一个前端学习必读的系列,让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:“作用...

程序员解决师
2018/05/29
0
0
《你不知道的js(上卷)》笔记1(基础知识和闭包)

大部分接触js应该都是先用了再学,其实大部分学习大部分语言都应该采取这种方式。因为只看不练,还能入门,而如果先看的话,估计很容易就学不下去了。所以呀,要想欺骗别人,首先得欺骗自己(...

陨石坠灭
06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Protocol Buffers 简介

文档编辑和持续集成状态: 本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs/index.html(本 WIKI 中的内容将会与在线发布...

honeymoose
今天
4
0
uniapp + bootstrapvue 移动/PC 一套搞定 (一)配置bootstrapvue

1.准备文件 自己到DCloud官网: http://dcloud.io/ 去下载官方的IDE Hbuilder,新建一个空的uniapp项目即可。 uniapp框架自带优化的vue,我们仅仅需要准备以下三个文件: bootstrap.min.css ...

panyunxing
今天
12
0
Android Camera原理之camera service类与接口关系

camera service主要是指 frameworks/av/services/camera/下面的代码,最近在看这一块的代码,为了更好地理清这一块的代码,也为了后续学习camera方便一些,我觉得很有必要理一下这一块的整体...

天王盖地虎626
今天
6
0
Golang学习笔记

[TOC] Golang学习笔记 这个学习笔记是最早在1.初,版本左右的时候写的,和当前最新的版本可能会有较大的差异. 因为成文比较早,文章里面又有很多自己的见解,有些东西当时理解的不太透彻可能写错...

我爱吃炒鸡
今天
21
0
科技赋能成效显著!金融壹账通两大赋能项目荣获IDC大奖

7月19日,2019IDC中国未来金融论坛曁颁奖典礼于北京举办。由金融壹账通赋能的长春农商银行多人视频面审智能风控系统、包头农商银行互联网银行SaaS服务两大项目因在项目的创新性、技术领先性、...

IFTNews
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部