hoyong

导航

2019年4月26日 #

Javascript 匿名函数与闭包(转)

摘要: 请见如下一个闭包示例: 在getColor函数内部再定义了一个displayColor,再又定义了一个displayColor函数,从而形成闭包,最后将地上displayColor函数返回,这里发现这样定义其实作用不大,可以使用匿名函数替代直接返回: 闭包中匿名函数和this对象 在javascri 阅读全文

posted @ 2019-04-26 15:33 hoyong 阅读(384) 评论(0) 推荐(0) 编辑

JavaScript闭包中的this对象(转)

摘要: 我们知道,this 对象是在运行时基于函数的执行环境绑定的:在全局函数中, this 等于 window,而当函数被作为某个对象的方法调用时, this 等于那个对象。 不过,匿名函数的执行环具有全局性,因此其 this 对象通常指向 window。但有时候由于编写闭包的方式不同,这一点可能不会那么 阅读全文

posted @ 2019-04-26 15:30 hoyong 阅读(135) 评论(0) 推荐(0) 编辑

JavaScript闭包-闭包中的变量和this对象(转)

摘要: JavaScript闭包-闭包中的变量和this对象(转) 在JavaScript中作用域链的机制会引发一些副作用:闭包只能够获取包含函数中任何变量的最后一个值。在使用闭包的时候,我们一定要注意变量值的问题,因为这是经常会出错的地方。 下面我们以一个非常极端的例子来说明这个问题,在实际开发中我们一般 阅读全文

posted @ 2019-04-26 15:27 hoyong 阅读(423) 评论(0) 推荐(0) 编辑

理解JavaScript中的闭包和闭包中的this指向(转)

摘要: 理解JavaScript中的闭包和闭包中的this指向(转) 一. 什么是闭包?闭包是指可以访问另一个函数作用域中变量的函数。在js中,只有函数内部的子函数才能够读取局部变量。因此可以简单地将闭包理解为: 定义在某个函数中的函数。二、闭包原理:上级作用域无法直接访问下级作用域中的变量,但下级作用域可 阅读全文

posted @ 2019-04-26 15:24 hoyong 阅读(427) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系 (转)

摘要: 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系 (转) 本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。 再说明之前,咱们先用简单的语言来概括一下这两个的区别。 00 上下文 阅读全文

posted @ 2019-04-26 12:56 hoyong 阅读(71) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(17)——补this (转)

摘要: 深入理解javascript原型和闭包(17)——补this (转) 本文对《深入理解javascript原型和闭包(10)——this》一篇进行补充 原文中,讲解了在javascript中this的各个情况,写完之后发现还落下一种情况,就此补充。 原文中this的其中一种情况是构造函数的,具体的内 阅读全文

posted @ 2019-04-26 12:55 hoyong 阅读(67) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(16)——完结 (转)

摘要: 深入理解javascript原型和闭包(16)——完结 (转) 之前一共用15篇文章,把javascript的原型和闭包。 首先,javascript本来就“不容易学”。不是说它有多难,而是学习它的人,往往都是在学会了其他语言之后,又学javascript。有其他语言的学习经历和实践经历,再加上自学 阅读全文

posted @ 2019-04-26 12:41 hoyong 阅读(101) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(15)——闭包(转)

摘要: 深入理解javascript原型和闭包(15)——闭包 (转) 前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础。 至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住。 但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递 阅读全文

posted @ 2019-04-26 12:30 hoyong 阅读(80) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】(转)

摘要: 深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】(转) 先解释一下什么是“自由变量”。 在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量。如下图 如上程序中,在调用fn()函数时,函数体中第6行。取b的值就 阅读全文

posted @ 2019-04-26 12:15 hoyong 阅读(81) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(13)-【作用域】和【上下文环境】(转)

摘要: 深入理解javascript原型和闭包(13)-【作用域】和【上下文环境】(转) 上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些。 如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时确定 阅读全文

posted @ 2019-04-26 12:10 hoyong 阅读(80) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(12)——简介【作用域】(转)

摘要: 深入理解javascript原型和闭包(12)——简介【作用域】(转) 提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句: 再比如for语句: 所以,我们在编写代码的时候,不要在“块”里面声明变量 阅读全文

posted @ 2019-04-26 12:04 hoyong 阅读(73) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(11)——执行上下文栈(转)

摘要: 深入理解javascript原型和闭包(11)——执行上下文栈(转) 继续上文的内容。 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。处于活动状态的执行上下文环境只有一个。 其实这是 阅读全文

posted @ 2019-04-26 11:58 hoyong 阅读(111) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(10)——this(转)

摘要: 深入理解javascript原型和闭包(10)——this(转) 接着上一节讲的话,应该轮到“执行上下文栈”了,但是这里不得不插入一节,把this说一下。因为this很重要,js的面试题如果不出几个与this有关的,那出题者都不合格。 其实,this的取值,分四种情况。我们来挨个看一下。 在此再强调 阅读全文

posted @ 2019-04-26 11:46 hoyong 阅读(116) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(9)——简述【执行上下文】下(转)

摘要: 深入理解javascript原型和闭包(9)——简述【执行上下文】下(转) 上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据: 变量、函数表达式——变量声明,默认赋值为undefined; this——赋值; 函数声明——赋值; 如果在函数中,除了以上数据之外,还会有其他数据。先看以 阅读全文

posted @ 2019-04-26 11:32 hoyong 阅读(69) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(8)——简述【执行上下文】上(转)

摘要: 深入理解javascript原型和闭包(8)——简述【执行上下文】上(转) 什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码: 第一句报错,a未定义,很正常。第二句、第三句输出都是undefined,说明浏览器在执行console.log(a)时,已经知道了a是undef 阅读全文

posted @ 2019-04-26 11:23 hoyong 阅读(95) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(7)——原型的灵活性(转)

摘要: 深入理解javascript原型和闭包(7)——原型的灵活性(转) 在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。 而在javascript中,就没有模子了,月饼被换成了面团,你可以 阅读全文

posted @ 2019-04-26 11:19 hoyong 阅读(63) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(6)——继承(转)

摘要: 深入理解javascript原型和闭包(6)——继承(转) 为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆。而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中的继承又完全是两回事儿。因此,这里把“继 阅读全文

posted @ 2019-04-26 11:12 hoyong 阅读(81) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(5)——instanceof(转)

摘要: 深入理解javascript原型和闭包(5)——instanceof(转) 又介绍一个老朋友——instanceof。 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知 阅读全文

posted @ 2019-04-26 10:23 hoyong 阅读(88) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(4)——隐式原型(转)

摘要: 深入理解javascript原型和闭包(4)——隐式原型(转) 注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看《javascript高级程序设计(第三版)》第6章:面向对象的程序设计。 上节已经提到,每个函数function都有一个prototy 阅读全文

posted @ 2019-04-26 10:14 hoyong 阅读(107) 评论(0) 推荐(0) 编辑

深入理解javascript原型和闭包(3)——prototype原型(转)

摘要: 深入理解javascript原型和闭包(3)——prototype原型(转) 既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名。如果它还是您的新朋友,我估计您也是javascript的新朋友。 在咱们的第一节(深入理解javascript原 阅读全文

posted @ 2019-04-26 10:04 hoyong 阅读(65) 评论(0) 推荐(0) 编辑