`
darrenzhu
  • 浏览: 807083 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

原型模式Prototype与 JavaScript的Prototype继承

阅读更多

Quoted from http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html
5、原型模式(Prototype)
原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的,先创建一个原型类:

https://www.tutorialspoint.com/design_pattern/prototype_pattern.htm
Prototype pattern refers to creating duplicate object while keeping performance in mind. This type of design pattern comes under creational pattern as this pattern provides one of the best ways to create an object.

This pattern involves implementing a prototype interface which tells to create a clone of the current object. This pattern is used when creation of object directly is costly. For example, an object is to be created after a costly database operation. We can cache the object, returns its clone on next request and update the database as and when needed thus reducing database calls.

从上面的解释中可以看出设计模式中创建型(Creational Patterns)模式中的prototype其实跟JavaScript prototype继承中的prototype概念是一致的,是同一种思想。只是设计模式里面的说的是一个通用的模式来创建一个耗时对象,而JavaScript则是通过prototype方式来实现面向对象的继承,是从面向对象继承的方面来讨论的,但是2者的本质上就是通过对象复制来创建新对象。

分享到:
评论

相关推荐

    原型设计模式prototype

    **原型设计模式(Prototype Pattern)**是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而不是通过构造函数来实例化新对象。在面向对象编程中,当我们需要频繁地创建具有相同或相似属性的对象时,...

    JavaScript设计模式与开发实践.pdf

    第一部分讲解了JavaScript语言的面向对象和函数式编程的知识,包括静态类型语言和动态类型语言的区别及其在实现设计模式时的异同、封装、继承、多态在动态类型语言中的体现、JavaScript基于原型继承的面向对象系统的...

    javascript的prototype继承

    为了解决这些问题,JavaScript引入了其他继承模式,如寄生组合式继承、原型式继承等。 8. **解决策略**:为了克服这些缺点,可以使用`Object.create()`方法或使用构造函数来模拟类继承,或者结合使用`call()`或`...

    javascript中类和继承(代码示例+prototype.js)

    `prototype.js`文件可能包含了对JavaScript原型链和继承的进一步封装和扩展。通常,这样的库可能会提供更方便的方式来创建类和实现继承,比如使用类语法糖,以及提供一些额外的功能,如方法重载、私有属性等。 例如...

    javascript 原型模式实现OOP的再研究

    JavaScript中的原型模式是一种实现面向对象编程(OOP)的关键机制,它基于原型继承,使得对象可以从其他对象那里获得属性和方法。在这个模式下,每个函数都有一个`prototype`属性,这个属性是一个对象,用于共享属性...

    JavaScript的prototype

    ### prototype与构造函数的关系 每个函数都有一个`prototype`属性,而每个对象都有一个`__proto__`属性。但是,构造函数的`prototype`还有一个特殊之处——`constructor`属性,它指向构造函数自身。这有助于追踪...

    javascript类库prototype.js

    6. **Class与Object继承**:Prototype.js 引入了面向对象的概念,实现了类(Class)和对象继承,使得JavaScript具备了更接近传统面向对象语言的编程模式。 7. **JSON支持**:随着JSON成为数据交换的主流格式,...

    JavaScript继承

    除了传统的原型链继承,JavaScript还支持其他继承模式,如组合继承(组合使用构造函数和原型链)、寄生继承(通过创建父类副本改进继承)、原型式继承(使用`Object.create()`)、寄生组合式继承(被认为是最有效的...

    详解JavaScript中基于原型prototype的继承特性_.docx

    JavaScript中的原型(prototype)机制是实现继承的一种核心方式。由于JavaScript是一种基于原型的面向对象语言,它不支持传统的类(class)概念,因此其继承机制显得与众不同。在JavaScript中,对象可以直接从另一个...

    prototype.js javaScript插件

    **JavaScript原型(Prototype)库详解** JavaScript是一种动态类型的编程语言...不过要注意,随着现代前端框架的兴起,像React、Vue、Angular等,Prototype.js的使用逐渐减少,但它的设计理念和模式仍然值得学习和借鉴。

    Advanced JavaScript (closures,prototype,inheritance)

    JavaScript,作为一种广泛应用于Web开发的脚本语言,其高级特性如闭包(closures)、原型(prototype)和继承(inheritance)是理解其精髓的关键。本文将深入探讨这些概念,帮助开发者更好地掌握JavaScript的核心。 ...

    理解Javascript原型继承原理

    ### 理解Javascript原型继承原理 #### 一、引言 在JavaScript中,原型继承是一种非常核心且独特的机制,它使得对象能够继承其他对象的属性和方法。本文旨在深入探讨这一机制,并通过具体的示例代码帮助读者更好地...

    Prototype_1.6 JavaScript代码和中文帮助手册

    prototype表示该函数的原型,也表示一个类的成员的集合。  在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。  1、该对象被类所引用,只有函数对象才可引用;  2、在new实例化...

    javascript原型继承代码案例

    javascript原型继承,prototype的使用,可以像java一样继承

    javascript 设计模式

    在JavaScript中,由于其特殊的原型继承机制和动态类型特性,设计模式的应用有一些独特的特点。 ### 1. 继承机制 在JavaScript中,继承主要通过原型链(Prototype Chain)实现。每个对象都有一个`__proto__`属性,...

    JavaScript_Prototype(源代码+中文手册).rar

    8. **模块化与封装**:随着模块系统的引入(如CommonJS、AMD、ES6模块),JavaScript的组织方式发生了变化,但原型仍然是实现对象继承的一种方式,只是在模块内部可能更多地使用闭包来封装和继承。 通过这个压缩包...

    Javascript 设计模式之构造函数模式.zip

    JavaScript设计模式是编程实践中一种优秀的代码组织方式,它总结了在特定场景下解决常见问题的最佳实践。构造函数模式是JavaScript中的一种重要设计模式,用于创建对象。本文将深入探讨构造函数模式及其应用。 构造...

    javascript继承的六大模式小结

    本文将深入探讨JavaScript继承的六大模式:原型链、借用构造函数、组合继承、原型式继承、寄生式继承以及寄生组合式继承。 1. **原型链** 原型链是JavaScript中最基础的继承方式,通过原型对象的引用实现。每个...

    Javascript 设计模式系统讲解与应用视频资源地址.7z

    JavaScript设计模式是编程实践中的一种重要思想,它提供了一套经过时间考验的最佳实践,用来解决常见的编程问题和提高代码的可维护性、可扩展性和可复用性。在JavaScript这种动态类型的脚本语言中,设计模式尤其重要...

Global site tag (gtag.js) - Google Analytics