JS面向对象的基础(二)
来源:互联网 发布:社交网络 百度云 编辑:程序博客网 时间:2024/06/09 18:02
在Design Patten For Java中,关于Prototype原型对象的设计需求是这样的。
The Prototype Pattern copies or clones an existing class rather than creating a new instance when creating new instances is more expensive.
当创建类的实例,如果需要花费较多的时间或者创建方式上较为复杂,这个时候可以考虑将原始对象进行拷贝,进行适合的修改以适应需求。
以上是Java中的定义,JavaScript不同的是,prototype是函数的一个内置的原型对象,是类的成员的集合。当通过new操作符来获取一个类的对象时,prototype对象的成员都会成为实例化对象的成员。
看一个简单的例子,
执行new操作符创建对象的过程:
(1) 创建一个新的对象,并让this指针指向它。
(2) 将函数的prototype对象的所有成员都赋给这个新的对象
(3) 执行函数体,对这个对象进行初始化操作;
(4) 返回(1)中创建的对象。
与上一篇手稿相比,多了用prototype对象来初始化对象的过程。引入了prototype对象之后,我们就可以采用一种更为简洁的类定义方式。
如果说上面的方式是简洁的,那么还不如采用如下的方式进行定义。
以无类型对象的方式来定义类成员,使得成员以列表的方式显示,更为简洁。值得注意的是,如果在上述定义的方法method2中,要引用属性prop2,必须通过this指针来引用,因为JS中每个方法和属性都是独立的,要通过this指针来联系到某一个对象上。
这种定义类的方式可以看做是JavaScript的一种固定模式,这样在使用中才会更加容易理解。To be continue......
- JS面向对象的基础(二)
- JS面向对象基础
- js面向对象基础
- js面向对象基础
- JS的面向对象的基础
- JS面向对象的基础(一)
- JS面向对象的基础(三)
- JS面向对象的基础(四)
- js面向对象二--封装
- js面向对象理解二
- js面向对象(二)
- C++面向对象基础二
- 面向对象基础<二>---继承
- Java面向对象基础二
- 面向对象基础加强二
- 面向对象基础(二)
- Java面向对象基础(二)
- 面向对象基础(二)
- Levenshtein distance (相似度)
- VIM从崩溃中恢复
- 自动生成Makefile的全过程详解!automake/autoconf入门
- .net 批量导入excel到access表中
- 在网页中显示数字时钟
- JS面向对象的基础(二)
- 记录
- Java中的自定义异常
- Hello World
- java序列化问题
- 理解error和exception的区别
- 养成良好的习惯
- 对于序列化的一次认识
- POJ 2488 A Knight's Journey(DFS——骑士周游问题)