09 2014 档案

摘要:从下面目录中可以看到,本系列有16篇文章,外加两篇后补的,一共18篇文章。写了半个月,从9月17号开始写的。每篇文章更新时,读者的反馈还是可以的,虽然不至于上头条,但是也算是中规中矩,有看的人,也有评论的人。特别是在后期讲闭包的时候。 我从来都不做基础入门教程,因为基础入门的教程,要想讲的和别人不一 阅读全文
posted @ 2014-09-30 08:05 王福朋 阅读(116449) 评论(74) 推荐(245) 编辑
摘要:本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。 再说明之前,咱们先用简单的语言来概括一下这两个的区别。 00 上下文环境: 可以理解为一个看不见摸不着的对象(有若干个属性),虽然看不见摸不着,但确实实实在在 阅读全文
posted @ 2014-09-29 18:32 王福朋 阅读(25790) 评论(45) 推荐(38) 编辑
摘要:本文对《深入理解javascript原型和闭包(10)——this》一篇进行补充,原文链接:http://www.cnblogs.com/wangfupeng1988/p/3988422.html 原文中,讲解了在javascript中this的各个情况,写完之后发现还落下一种情况,就此补充。 原文 阅读全文
posted @ 2014-09-27 09:56 王福朋 阅读(31785) 评论(10) 推荐(15) 编辑
摘要:之前一共用15篇文章,把javascript的原型和闭包。 首先,javascript本来就“不容易学”。不是说它有多难,而是学习它的人,往往都是在学会了其他语言之后,又学javascript。有其他语言的学习经历和实践经历,再加上自学javascript,边学边用,肯定会产生许多误解,走许多弯路。 阅读全文
posted @ 2014-09-26 15:09 王福朋 阅读(34613) 评论(156) 推荐(199) 编辑
摘要:前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础。 至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住。 但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递。 第一,函数作为返回值 如上代码,bar函数作为返回值,赋值给 阅读全文
posted @ 2014-09-26 07:55 王福朋 阅读(143420) 评论(99) 推荐(61) 编辑
摘要:先解释一下什么是“自由变量”。 在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量。如下图 如上程序中,在调用fn()函数时,函数体中第6行。取b的值就直接可以在fn作用域中取,因为b就是在这里定义的。而取x的值时,就需要到另一个作用域中 阅读全文
posted @ 2014-09-25 14:50 王福朋 阅读(53776) 评论(25) 推荐(35) 编辑
摘要:上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些。 如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时确定。 下面我们将按照程序执行的顺序,一步一步把各个上下文环境加上。另外,对上下文环境 阅读全文
posted @ 2014-09-25 08:18 王福朋 阅读(47957) 评论(21) 推荐(36) 编辑
摘要:提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句: 再比如for语句: 所以,我们在编写代码的时候,不要在“块”里面声明变量,要在代码的一开始就声明好了。以避免发生歧义。如: 其实,你光知道“ja 阅读全文
posted @ 2014-09-24 17:10 王福朋 阅读(46834) 评论(10) 推荐(21) 编辑
摘要:继续上文的内容。 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。处于活动状态的执行上下文环境只有一个。 其实这是一个压栈出栈的过程——执行上下文栈。如下图: 可根据以下代码来详细介绍 阅读全文
posted @ 2014-09-23 21:26 王福朋 阅读(49702) 评论(12) 推荐(38) 编辑
摘要:接着上一节讲的话,应该轮到“执行上下文栈”了,但是这里不得不插入一节,把this说一下。因为this很重要,js的面试题如果不出几个与this有关的,那出题者都不合格。 其实,this的取值,分四种情况。我们来挨个看一下。 在此再强调一遍一个非常重要的知识点:在函数中this到底取何值,是在函数真正 阅读全文
posted @ 2014-09-23 14:57 王福朋 阅读(65447) 评论(48) 推荐(30) 编辑
摘要:继续上一篇文章(http://www.cnblogs.com/wangfupeng1988/p/3986420.html)的内容。 上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据: 变量、函数表达式——变量声明,默认赋值为undefined; this——赋值; 函数声明——赋值; 阅读全文
posted @ 2014-09-23 08:43 王福朋 阅读(53770) 评论(28) 推荐(34) 编辑
摘要:什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码: 第一句报错,a未定义,很正常。第二句、第三句输出都是undefined,说明浏览器在执行console.log(a)时,已经知道了a是undefined,但却不知道a是10(第三句中)。 在一段js代码拿过来真正一句一句 阅读全文
posted @ 2014-09-22 17:49 王福朋 阅读(70532) 评论(33) 推荐(51) 编辑
摘要:在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。 而在javascript中,就没有模子了,月饼被换成了面团,你可以捏成自己想要的样子。 首先,对象属性可以随时改动。 对象或者函数,刚 阅读全文
posted @ 2014-09-18 21:05 王福朋 阅读(53317) 评论(9) 推荐(32) 编辑
摘要:为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆。而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中的继承又完全是两回事儿。因此,这里把“继承”着重拿出来,就为了体现这个不同。 javascript中 阅读全文
posted @ 2014-09-18 20:17 王福朋 阅读(66550) 评论(26) 推荐(43) 编辑
摘要:又介绍一个老朋友——instanceof。 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。 这 阅读全文
posted @ 2014-09-18 16:38 王福朋 阅读(71269) 评论(49) 推荐(41) 编辑
摘要:注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看《javascript高级程序设计(第三版)》第6章:面向对象的程序设计。 上节已经提到,每个函数function都有一个prototype,即原型。这里再加一句话——每个对象都有一个__proto_ 阅读全文
posted @ 2014-09-18 15:14 王福朋 阅读(86824) 评论(99) 推荐(49) 编辑
摘要:既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名。如果它还是您的新朋友,我估计您也是javascript的新朋友。 在咱们的第一节(深入理解javascript原型和闭包(1)——一切都是对象)中说道,函数也是一种对象。他也是属性的集合,你 阅读全文
posted @ 2014-09-17 21:51 王福朋 阅读(106794) 评论(52) 推荐(64) 编辑
摘要:上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断。 对!函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一样。但是函数与对象之间,却不仅仅是一种包含和被包含的关 阅读全文
posted @ 2014-09-17 21:02 王福朋 阅读(86854) 评论(39) 推荐(66) 编辑
摘要:说明: 该教程绕开了javascript的一些基本的语法知识,直接讲解javascript中最难理解的两个部分,也是和其他主流面向对象语言区别最大的两个部分——原型和闭包,当然,肯定少不了原型链和作用域链。帮你揭开javascript最神秘的面纱。 为什么要偏偏要讲这两个知识点? 这是我在这么多年学 阅读全文
posted @ 2014-09-17 20:35 王福朋 阅读(244489) 评论(64) 推荐(211) 编辑
摘要:“一切都是对象”这句话的重点在于如何去理解“对象”这个概念。 ——当然,也不是所有的都是对象,值类型就不是对象。 首先咱们还是先看看javascript中一个常用的运算符——typeof。typeof应该算是咱们的老朋友,还有谁没用过它? typeof函数输出的一共有几种类型,在此列出: 以上代码列 阅读全文
posted @ 2014-09-17 20:34 王福朋 阅读(138574) 评论(72) 推荐(63) 编辑
摘要:http://study.163.com/course/courseMain.htm?courseId=752006#/courseMain(教程前5节免费预览,可以试看一下)1. 前言我从年初就有想系统的整理一下设计模式的想法,于是忙里偷闲、茶余饭后、业余时间看了好几本设计模式的书,包括《设计模式... 阅读全文
posted @ 2014-09-03 21:07 王福朋 阅读(4572) 评论(43) 推荐(2) 编辑
摘要:1. 前言昨天写了《js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1》,简单记录了几个问题。part1的重点还是在于最后那个循环创建函数的问题,也就是多个子函数公用一个闭包数据的问题。如果觉得有兴趣,可以再重新翻出来看看。今天继续把剩下的问题写完。2. 作用域链学js的人,即使初级入... 阅读全文
posted @ 2014-09-01 20:05 王福朋 阅读(1976) 评论(2) 推荐(1) 编辑
摘要:先贴出上集链接:来给罗永浩和王自如打个分(上)前两天因为老罗和王自如那个视频太长了,所以看了一半儿,就只写了个“上”,今天再把“下”补上。关于“上”的评论,有许多人说了许多话,绝大部分的评论还是针对老罗和王自如的,大家各抒己见,说谁的都有。有为数不多的评论是批评我的,有说我偏向王自如的、有说我分析逻... 阅读全文
posted @ 2014-09-01 07:01 王福朋 阅读(7586) 评论(43) 推荐(8) 编辑