1、深入理解prototype, getPrototypeOf和_ proto _prototype,getPropertyOf和 _ proto _ 是三个用来访问prototype的方法。它们的命名方式很类似因此很容易带来困惑。它们的使用方式如下:
C.prototype: 一般用来为一个类型建立它的原型继承对象。比如C.prototype = xxx,这样就会让使用new C()得到的对象的原...
分类:
编程语言 时间:
2015-10-21 15:58:04
阅读次数:
264
JavaScript 的原型继承就是奇葩。之前在 V2EX 上看到讨论说,不会 OOP 的 JavaScript 的程序员就是野生程序员。看来我是属于野生的。一、遇到的问题问题发生在使用 AngularJS 嵌套 Controller 的时候。因为每个 Controller 都有它对应的 Scope...
分类:
Web程序 时间:
2015-10-21 12:09:56
阅读次数:
358
util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数。JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有 提供对象继承的语言级别特性,而是通过原型复制来实现的,具体细节我们在附录A中讨...
分类:
Web程序 时间:
2015-10-19 12:32:40
阅读次数:
252
instanceof:用来判断实例是否是属于某个对象,这个判断依据是什么呢?首先,了解一下javascript中的原型继承的基础知识:javascript中的对象都有一个__proto__属性,这个是对象的隐式原型,指向该对象的原型对象。显式的原型对象使用prototype,但是Object.pro...
分类:
编程语言 时间:
2015-10-10 20:12:08
阅读次数:
208
五天之前我写了一个关于ES6标准中Class的文章。在里面我介绍了如何用现有的Javascript来模拟类并且介绍了ES6中类的用法,其实它只是一个语法糖。感谢Om Shakar以及Javascript Room中的各位,我的编程风格从那时候开始发生了改变;就像Dougla Crockford200...
分类:
其他好文 时间:
2015-09-22 18:12:23
阅读次数:
270
javascript不支持传统类的继承的模式,是基于原型的继承,也就是通过prototype设置来实现继承下面我们考虑下面的这个问题 function Person() { this.name = "haha"; this.sayName = fun...
分类:
其他好文 时间:
2015-09-04 14:06:51
阅读次数:
167
类继承: 先用函数构造器创建了一个“类”Student,然后在Student原型上定义了一个方法sayHello,然后创建了一个"类“PrimaryStudent,用apply()初始化PrimaryStudent。然后让PrimaryStudent的原型等于Student创建的对象,并把Prim....
分类:
Web程序 时间:
2015-09-02 23:18:25
阅读次数:
227
原型模式: 基于原型继承的模式,创建对象作为其他对象的原型,也就是创建的一个对象作为另一个对象的prototype属性值。 注意问题: 注意浅拷贝和深拷贝,避免出现引用问题。 代码例子: 方式一:使用 Object.cre...
分类:
其他好文 时间:
2015-08-31 06:35:57
阅读次数:
276
JavaScript是基于对象的而非基于类,但是,JavaScript的的函数式语言的特性使得它本身是可编程的,它可以变成你想要的任何形式。JavaScript的OO风格代码开发:
1、原型继承
JavaScript中的继承可以使用原型链来实现,调用对象上的一个方法,由于方法在JavaScript对象中是对另一个函数对象的引用,因此解释器会在对象中查找该属性,如果没有
找到,则在其内部对象p...
分类:
编程语言 时间:
2015-08-30 16:00:07
阅读次数:
129
继承方面,JavaScript 中的每个对象都有一个内部私有的链接指向另一个对象,这个对象就是原对象的原型。这个原型对象也有自己的原型,直到对象的原型为 null 为止(也就是没有原型)。这种一级一级的链结构就称为原型链。虽然这通常会被称作 JavaScript 的弱点之一,实际上这种原型继承的模型...
分类:
其他好文 时间:
2015-08-27 12:32:58
阅读次数:
127