prototype给我的感觉一直是个十分神秘的东西,深不可测,高不可攀,几次想找机会高懂它,都是半途而废,这次也不能算是完全明白,但似乎比以前明白的多了些,就记录下来,希望以后有了新的感悟再回头比较一下,修证现在的记录
首先引用“名人”的话,解释一下:
-
prototype不仅仅是一种管理对象继承的机制,更是一种出色的设计思想。
-
javascript中对象的prototype属性,可以返回对象类型原型的引用。
-
“原型”是描述自然界事物之间“归类”类系的一种,另外几种关系包括“继承”、“接口”,一般来说,“继承”描述的是事物之间固有的衍生关系,能被“继承”所描述的事物之间具有很强的关联性(血缘)。“接口”描述事物功用方面的共同物征。而“原型”则倾向于描述事物之间的“相似性”。从这一点看,“原型”在描述事物关联性方面,比继承和接口更加广义。
-
一个类型有且仅有一个原型(在默认情况下,该原型是一个object对象),而一个对象却可能有多个类型。
对象——类型——原型(对象)可能构成一个环状或者其他拓扑结构,这一特性给javascript带来了五花八门的用法:
-
给原型对象动态添加属性或方法(静态属性或方法区别于用this定义的公有属性和公有方法)
-
使用prototype创建大量副本(实质
)
var p1 = new Point(1,2);
var points = [];
var PointPrototype = function(){};
PointPrototye.prototype = p1;
for(var i =0;i < 1000; i++){
//由于PointPrototype的构造函数是空函数,因此它的构造要比直接构造p1副本要快的多
points[i] = new PointProptotype();
}
将一个属性添加为prototype的属性,这个属性将被该类型创建的所有实例所共享,但是这种共享是只读的。在任何一个实例中只能够用自己的同名属性覆盖这个属性,而不能够去改变它。换句话说,对象在读取某个属性时,总是先检查自身域的属性表,如果有这个属性,则会返回这个属性,否则就去读取prototype域,返回prototype域上的属性。另外,javascript允许prototype域引用任何类型的对象,因此,如果对prototype域的读取依然没有找到这个属性,则javascript将递归地查找prototype域所指向对象的prototype 域,直到这个对象的prototype域为它本身或都出现循环为止。
prototype的特点是能够以某个类型为原型构造大量的对象。以prototype机制来模拟的继承是一种原型继承,它是javascript多种继承实现方式的一种。
分享到:
相关推荐
#### 二、读书笔记格式要求 1. **资料来源标注** - 首先,在每篇读书笔记的开头,需要明确给出所选读的资料来源。 - 引用资料的表示方法与毕业论文中的参考资料表示方式相同。 - 使用4号黑体字体表示引用资料的...
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇
【标题】"java读书笔记笔记笔记笔记笔记笔记" 暗示了这是一份关于Java编程语言的学习笔记,可能包含了作者在阅读Java相关书籍时所做的重要记录和理解。笔记通常涵盖了语言的基础概念、核心特性、类与对象、内存管理...
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
总结,Prototype.js是JavaScript开发中的一个重要工具,它通过一系列强大的API和设计模式,使得JavaScript的开发更加高效、优雅。通过学习和掌握Prototype,开发者可以更好地驾驭JavaScript,创造出更具交互性的Web...
### 二、读书笔记在IT行业的作用 #### 1. 技术积累 IT行业知识庞大且更新迅速,通过撰写读书笔记,可以系统地积累专业知识,构建个人的知识体系。无论是学习编程语言、软件工程还是数据科学,笔记都是积累和回顾...
国家间政治读书笔记.pdf
sql fundament 读书笔记 oracle 原厂 培训 金领DBA
这篇读书笔记主要聚焦在第三部分,这部分通常涵盖了更高级的主题,如对象、原型、闭包以及模块化等。结合提供的"listutil.js"文件,我们可以深入探讨JavaScript中的实用工具函数和编程技巧。 首先,JavaScript的...
谈谈辩证法问题读书笔记.doc
读书笔记
### Prototype.js 开发笔记知识点详解 #### 1.1 Prototype.js 是什么? Prototype.js 是一个由 Sam Stephenson 开发的 JavaScript 库。该库的主要目的是简化 Web 应用程序的开发过程,尤其针对那些需要高度交互性...
【读书笔记概述】 读书笔记是阅读过程中的重要辅助工具,它可以帮助我们记录和理解书中的精华,提升记忆力,促进思考,积累素材,并提高写作和表达能力。读书笔记主要有三种类型:摘要式、批注式和体会式。 1. **...
Hadoop权威指南----读书笔记