JS学习之this关键字
来源:互联网 发布:nginx 配置ssl模块 编辑:程序博客网 时间:2024/06/15 00:41
his关键字跟在哪定义没关系,只跟在哪执行有关系这是在window下执行,这里弹出的this就是window
// var obj={fn1:fn};
// obj.fn1();//这是在obj下执行,即弹出的是object
// 函数在定义的时候 ,this指的是谁 是不知道的
// 变量属于哪个作用域,由他在哪儿(作用域)定义有关系
//自运行的函数只要没有·都是在window下运行的this就是window
var number = 2; var obj = { number: 4, fn1: (function () { //自执行时,先声明了一个函数和一个number this.number *= 2;//执行时this.number是全局变量number,即window.number=4 number = number * 2;//这个number为undefined,是这个自执行函数作用域内的number var number = 3;//这个作用域内的number被从新定义为数字3 return function () { //返回给fn1 this.number *= 2;//在没执行之前,这个this无法确定 number *= 3;//这个number即为自执行函数内定义的number并不是全局变量 alert(number) //弹出的number也是自执行函数内定义的number } })(), db2: function () { this.number *= 2 } }; var fn1 = obj.fn1; alert(number);//弹出的为全局变量number 为4 fn1();//这里面的this即为window 弹出9 obj.fn1();//这里面的this即为obj 弹出27 alert(window.number);//弹出8 alert(obj.number);//弹出8
对上面的代码进行分析,运行之前,先预解释了一个number和一个obj,
当执行当自执行函数那里 时,obj中的fn1属性,对应的属性值是那个自执行函数的返回函数,由于,返回函数被占用了,所以这个自执行这次,产生的作用域不会被释放掉。
又由于自运行的函数只要没有·都是在window下运行的this就是window,故其执行时分析如上注释
0 0
- JS学习之this关键字
- JS学习之this关键字
- JS学习—this关键字
- C#学习之this关键字
- java学习之this关键字
- Java学习之关键字this的学习
- Java学习之private和this关键字
- Java学习之封装与this关键字
- java学习笔记之this关键字
- java学习初探5之this关键字
- js学习总结之this
- js学习笔记之this
- js中的this关键字
- JS的this关键字
- JS This关键字
- JS的this关键字
- js的this关键字
- js this关键字
- spring 配置文件属性
- 为什么Java byte 类型的取值范围是-128~127
- Java 编程下 Eclipse 如何设置单行代码显示的最大宽度
- 八款Java 开发者必备的工具
- 哈夫曼编码 (Huffman code)的实现,压缩、解压缩
- JS学习之this关键字
- UVA -156 Ananagrams(反片语)
- 关闭窗口后对父窗口的控制
- 设置网页由中间向外扩大变化
- 学习笔记之Myeclipse中 报错 Syntax error on token "Invalid Regular Expression Options", no accurate correc
- 一个简单的利用ini配置文件以及用户输入的交互进行文件夹内容拷贝的批处理文件脚本的实现
- 上传文件(可用ajaxfileupload.js插件)
- 【Qt OpenGL教程】15:图形字体的纹理映射
- 徐新在南京大学2014毕业典礼上的致辞