![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 68
saberVIII
这个作者很懒,什么都没留下…
展开
-
JavaScript 原型与实例
原型与实例JavaScript可以通过对象实例访问保存在原型中的值,但却不能通过对象实例重写原型中的值。如果我们在实例中添加了一个属性,并且该属性与实例原型的属性同名,那我们就在实例中创建该属性,在通过实例访问该属性的时候,实例中的属性将会屏蔽原型中的属性。原创 2016-06-13 10:58:28 · 529 阅读 · 0 评论 -
JavaScript闭包--简介
闭包定义闭包指的是有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数A内部创建另一个函数B,那么函数B就是一个闭包,可以访问函数A作用域中的所有变量。 JavaScript的闭包与作用域链密不可分,因此本文可以和JavaScript的作用域链相对照分析,一定可以对JavaScript的闭包和作用域链有更深的理解。 下面我们仍然以createComparisonFuncti原创 2016-06-14 23:03:05 · 972 阅读 · 0 评论 -
JavaScript闭包--模仿块级作用域
在阅读这篇文章之前,建议先阅读JavaScript的作用域链以及JavaScript闭包–简介。正如闭包的定义一样:“闭包指的是有权访问另一个函数作用域中的变量的函数”, 闭包最大的意义就在于闭包可以对另一个函数作用域的变量进行访问,由此,闭包可以延伸出一系列的用法。模仿块级作用域JavaScript没有块级作用域的概念。这意味着在块语句中定义的变量,实际上是包含在函数中而非语句中创建的。从作用域链原创 2016-06-15 16:33:06 · 1381 阅读 · 0 评论 -
JavaScript闭包--this对象
this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this对象指向window,而当函数作为某个对象X的方法调用的时候,this对象指向X对象。不过,匿名函数的执行环境具有全局性,因此其this对象通常指向window。但是由于编写闭包的方式不同,这一点可能不会那么明显。我们看下面一个例子:var name = "The Window";var object = { name原创 2016-06-15 12:21:16 · 500 阅读 · 0 评论 -
JavaScript的函数表达式
JavaScript中定义函数的方式有两种:一种是函数声明,另一种就是函数表达式。函数声明function functionName(arg0, arg1, arg2){ //function body}首先是function关键字,然后是函数的名字,接着是函数的参数列表,然而在访问函数的时候,实际上仅仅匹配函数的名字,而不用匹配参数列表的,在函数内部,是使用arguments数组来存储参原创 2016-06-14 18:23:46 · 465 阅读 · 0 评论 -
JavaScript的作用域链
跟其他语言一样,变量和函数的作用域揭示了这些变量和函数的搜索路径。对于JavaScript而言,理解作用域更加重要,因为在JavaScript中,作用域可以用来确定this的值,并且JavaScript有闭包,闭包是可以访问外部环境的作用域的。 每一个JavaScript的函数都是Function对象的一个实例,Function对象有一个内部属性[[Scope]],这个属性只能被JavaScrip原创 2016-06-14 13:57:57 · 931 阅读 · 0 评论 -
JavaScript的继承--寄生组合式继承
寄生组合式继承寄生组合式继承,就是通过伪造对象来继承属性,通过原型链的混成形式来继承方法。 这种技术的基本思路是:不必为了指定子类型的原型而调用超类型的构造函数,因为我们所需要的只是超类型原型的一个副本而已(这一点正是组合继承的问题,并且正是JavaScript这种原型式语言的强大之处,直接copy对象-原型对象)。本质上,就是使用寄生式继承来继承超类型的原型,然后再将结果指定给子类型的原型。fu原创 2016-06-13 18:10:38 · 564 阅读 · 0 评论 -
JavaScript的继承--组合继承
组合继承组合继承也叫伪经典继承,指的是讲原型链和伪造对象的技术组合到一块,从而发挥两者之长的一种继承模式。 这种技术的思路是使用原型链实现对原型属性和方法的继承,使用伪造对象实现对实例属性的继承。这样,既通过原型上定义方法实现了函数复用,又能保证每个实例都有它自己的属性。function SuperType(name){ this.name = name; this.colors原创 2016-06-13 16:51:41 · 365 阅读 · 0 评论 -
JavaScript的继承--伪造对象
伪造对象伪造对象也叫经典继承。这种技术的思想相当简单,即在子类型构造函数内部调用超类型的构造函数。因为函数只不过是在特定环境中执行代码的对象,因此通过使用apply()和call()方法也可以在(将来)新创建的对象上执行构造函数。function SuperType(){ this.colors = ["red", "blue", "green"];}function SubType(){原创 2016-06-13 15:08:43 · 488 阅读 · 0 评论 -
JavaScript的继承--原型链
JavaScript描述了原型链的概念,并将原型链作为实现继承的主要方法。基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。原创 2016-06-13 13:04:30 · 357 阅读 · 0 评论 -
JavaScript的继承--概述
继承是OO语言的重要概念。OO语言大多支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。JavaScript没有函数签名,因此无法实现接口继承,只支持实现继承,依靠原型链来实现。JavaScript大致有以下4种继承方式: 1. 原型链 2. 伪造对象 3. 组合继承 4. 寄生组合式继承原创 2016-06-13 11:42:18 · 362 阅读 · 0 评论 -
JavaScript闭包--特权方法
在阅读这篇文章之前,建议先阅读JavaScript的作用域链以及JavaScript闭包–简介。正如闭包的定义一样:“闭包指的是有权访问另一个函数作用域中的变量的函数”, 闭包最大的意义就在于闭包可以对另一个函数作用域的变量进行访问,由此,闭包可以延伸出一系列的用法。私有变量严格来说,JavaScript没有私有成员的概念,所有对象属性都是公共的。不过JavaScript有私有变量的概念。任何在函数原创 2016-06-15 17:52:10 · 556 阅读 · 0 评论