摘要: 稳妥构造函数模式 ​ 道格拉斯·克罗克福德(Douglas Crockford)发明了 JavaScript 中的稳妥对象(durable object)这个概念,所谓稳妥对象,指的是没有公共属性,而且其他方法也不引用 this 的对象。稳妥对象最适合在一些安全的环境中(这些环境中会禁止使用 thi 阅读全文
posted @ 2021-01-28 09:39 菜鸡又来了 阅读(157) 评论(0) 推荐(0)
摘要: 寄生构造函数模式 ​ 前面的几种模式都不适用的情况下,可以使用寄生(parasitic)构造函数模式。这种模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后返回新创建的对象;但从表面上看,这个函数又很像是典型的构造函数。 function Person(name, age, s 阅读全文
posted @ 2021-01-28 09:31 菜鸡又来了 阅读(275) 评论(0) 推荐(0)
摘要: 动态原型模式 ​ 以构造函数模式组合原型模式在目前看来已经很完美了,硬要挑出它的缺点的话就是封装性差了点,动态原型模式正是致力于解决这个问题的一个方案: function Person(name, age, sex){ this.name = name this.age = age this.sex 阅读全文
posted @ 2021-01-28 09:30 菜鸡又来了 阅读(299) 评论(0) 推荐(0)
摘要: 构造函数+原型模式 ​ 创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。结果,每个实例都会有自己的一份实例属性的副本,但同使又共享这对方法的引用,最大限度地节省了内存。另外,这种混合模式还支持向构造函数传递参数;可谓是 阅读全文
posted @ 2021-01-28 09:28 菜鸡又来了 阅读(147) 评论(0) 推荐(0)
摘要: 原型模式 原型模式 我们创建的每个函数都有一个 prototype(原型) 属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以有特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,那么 prototype 就是通过调用构造函数而创建的那个对象实例的原型对象。使用原型对象的好处 阅读全文
posted @ 2021-01-28 09:27 菜鸡又来了 阅读(145) 评论(0) 推荐(0)
摘要: 构造函数模式 构造函数可以用来创建特定类型的对象。像 Object 和 Array 这样的原生构造函数,在运行时会自动出现在执行环境中,此外,也可以创建自定义的构造函数,从而定义自定义的对象类型的属性或者方法。例如,可以使用构造函数模式将前面的工厂模式的例子重写: function preson(n 阅读全文
posted @ 2021-01-28 09:19 菜鸡又来了 阅读(215) 评论(0) 推荐(0)
摘要: 原始模式和工厂模式 原始模式 通过 Object 构造函数或对象字面量都可以创建单个对象 var preson = new Object() preson.name = '小明' preson.age = 22 preson.sex = '男' preson.sleep = function(){ 阅读全文
posted @ 2021-01-28 09:18 菜鸡又来了 阅读(145) 评论(0) 推荐(0)