摘要:
上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些。 如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时确定。 下面我们将按照程序执行的顺序,一步一步把各个上下文环境加上。另外,对上下文环境 阅读全文
posted @ 2017-02-20 23:25
代羽00
阅读(124)
评论(0)
推荐(0)
摘要:
提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句: 再比如for语句: 所以,我们在编写代码的时候,不要在“块”里面声明变量,要在代码的一开始就声明好了。以避免发生歧义。如: 其实,你光知道“ja 阅读全文
posted @ 2017-02-20 23:21
代羽00
阅读(125)
评论(0)
推荐(0)
摘要:
继续上文的内容。 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。处于活动状态的执行上下文环境只有一个。 其实这是一个压栈出栈的过程——执行上下文栈。如下图: 可根据以下代码来详细介绍 阅读全文
posted @ 2017-02-20 22:40
代羽00
阅读(156)
评论(0)
推荐(0)
摘要:
其实,this的取值,分四种情况。我们来挨个看一下。 在此再强调一遍一个非常重要的知识点:在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。因为this的取值是执行上下文环境的一部分,每次调用函数,都会产生一个新的执行上下文环境。 情况1:构造函数 所谓构造函数 阅读全文
posted @ 2017-02-20 22:14
代羽00
阅读(117)
评论(0)
推荐(0)
摘要:
上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据: 变量、函数表达式——变量声明,默认赋值为undefined; this——赋值; 函数声明——赋值; 如果在函数中,除了以上数据之外,还会有其他数据。先看以下代码: 以上代码展示了在函数体的语句执行之前,arguments变量和函数 阅读全文
posted @ 2017-02-20 21:33
代羽00
阅读(104)
评论(0)
推荐(0)
摘要:
什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码: 第一句报错,a未定义,很正常。第二句、第三句输出都是undefined,说明浏览器在执行console.log(a)时,已经知道了a是undefined,但却不知道a是10(第三句中)。 在一段js代码拿过来真正一句一句 阅读全文
posted @ 2017-02-20 21:27
代羽00
阅读(112)
评论(0)
推荐(0)
摘要:
在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。 而在javascript中,就没有模子了,月饼被换成了面团,你可以捏成自己想要的样子。 首先,对象属性可以随时改动。 对象或者函数,刚 阅读全文
posted @ 2017-02-20 21:15
代羽00
阅读(96)
评论(0)
推荐(0)
摘要:
为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆。而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中的继承又完全是两回事儿。因此,这里把“继承”着重拿出来,就为了体现这个不同。 javascript中 阅读全文
posted @ 2017-02-20 21:11
代羽00
阅读(146)
评论(0)
推荐(0)
摘要:
又介绍一个老朋友——instanceof。 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。 这 阅读全文
posted @ 2017-02-20 21:06
代羽00
阅读(122)
评论(0)
推荐(0)
摘要:
注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看《javascript高级程序设计(第三版)》第6章:面向对象的程序设计。 上节已经提到,每个函数function都有一个prototype,即原型。这里再加一句话——每个对象都有一个__proto_ 阅读全文
posted @ 2017-02-20 21:01
代羽00
阅读(127)
评论(0)
推荐(0)
摘要:
既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名。如果它还是您的新朋友,我估计您也是javascript的新朋友。 在咱们的第一节(深入理解javascript原型和闭包(1)——一切都是对象)中说道,函数也是一种对象。他也是属性的集合,你 阅读全文
posted @ 2017-02-20 20:50
代羽00
阅读(162)
评论(0)
推荐(0)
摘要:
上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断。 对!函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一样。但是函数与对象之间,却不仅仅是一种包含和被包含的关 阅读全文
posted @ 2017-02-20 14:35
代羽00
阅读(134)
评论(0)
推荐(0)
摘要:
“一切都是对象”这句话的重点在于如何去理解“对象”这个概念。 ——当然,也不是所有的都是对象,值类型就不是对象。 首先咱们还是先看看javascript中一个常用的函数——typeof()。typeof应该算是咱们的老朋友,还有谁没用过它? typeof函数输出的一共有几种类型,在此列出: 以上代码 阅读全文
posted @ 2017-02-20 14:26
代羽00
阅读(126)
评论(0)
推荐(0)
摘要:
var a = {n: 1} // 定义变量 a 为一个新对象,且这个新对象有一个值为 1 的 n 成员 var b = a; // 定义变量 b ,并且让b也引用变量a的对象 // 经过上面这两句之后,变量 a 和 b 都引用了对象 {n:1} // 下面这句是问题的关键 a.x = a = {n 阅读全文
posted @ 2017-02-20 14:08
代羽00
阅读(234)
评论(0)
推荐(0)
摘要:
$.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下。 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和del 阅读全文
posted @ 2017-02-20 13:39
代羽00
阅读(105)
评论(0)
推荐(0)

浙公网安备 33010602011771号