随笔分类 - JavaScript
摘要:原型链 原型链的概念 ECMAScript 中描述了原型链的概念,并将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。简单回顾以下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原
阅读全文
摘要:稳妥构造函数模式 道格拉斯·克罗克福德(Douglas Crockford)发明了 JavaScript 中的稳妥对象(durable object)这个概念,所谓稳妥对象,指的是没有公共属性,而且其他方法也不引用 this 的对象。稳妥对象最适合在一些安全的环境中(这些环境中会禁止使用 thi
阅读全文
摘要:寄生构造函数模式 前面的几种模式都不适用的情况下,可以使用寄生(parasitic)构造函数模式。这种模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后返回新创建的对象;但从表面上看,这个函数又很像是典型的构造函数。 function Person(name, age, s
阅读全文
摘要:动态原型模式 以构造函数模式组合原型模式在目前看来已经很完美了,硬要挑出它的缺点的话就是封装性差了点,动态原型模式正是致力于解决这个问题的一个方案: function Person(name, age, sex){ this.name = name this.age = age this.sex
阅读全文
摘要:构造函数+原型模式 创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。结果,每个实例都会有自己的一份实例属性的副本,但同使又共享这对方法的引用,最大限度地节省了内存。另外,这种混合模式还支持向构造函数传递参数;可谓是
阅读全文
摘要:原型模式 原型模式 我们创建的每个函数都有一个 prototype(原型) 属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以有特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,那么 prototype 就是通过调用构造函数而创建的那个对象实例的原型对象。使用原型对象的好处
阅读全文
摘要:构造函数模式 构造函数可以用来创建特定类型的对象。像 Object 和 Array 这样的原生构造函数,在运行时会自动出现在执行环境中,此外,也可以创建自定义的构造函数,从而定义自定义的对象类型的属性或者方法。例如,可以使用构造函数模式将前面的工厂模式的例子重写: function preson(n
阅读全文
摘要:原始模式和工厂模式 原始模式 通过 Object 构造函数或对象字面量都可以创建单个对象 var preson = new Object() preson.name = '小明' preson.age = 22 preson.sex = '男' preson.sleep = function(){
阅读全文
摘要:属性类型 ES5定义了内部才用的特性时,描述了属性的各种特征。ES5定义这些特征是为了实现 JavaScript 引擎用的,因此在 JavaScript 中不能直接访问它们。为了表示特性时内部值,该规范把他们放在了两对中括号中,例如 [[Enumerable]]。 ECMAScript 中有两种属性
阅读全文

浙公网安备 33010602011771号