js高端系列教程(20)

上传人:re****.1 文档编号:508381649 上传时间:2024-01-08 格式:DOCX 页数:3 大小:35.27KB
返回 下载 相关 举报
js高端系列教程(20)_第1页
第1页 / 共3页
js高端系列教程(20)_第2页
第2页 / 共3页
js高端系列教程(20)_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《js高端系列教程(20)》由会员分享,可在线阅读,更多相关《js高端系列教程(20)(3页珍藏版)》请在金锄头文库上搜索。

1、除了创建对象,构造函数(constructor) 还做了另一件有用的事情 一 自动为创建的新对象设置了原型对象 (prototype object)。原型对象存放 于 ConstructorFunction.prototype 属性中。例如,我们重写之前例子,使用构造函数创建对象“b”和“c”,那么对象”a”则扮演了 “Foo.prototype”这个角色:/ 构造函数function Foo(y) /构造函数将会以特定模式创建对象:被创建的对象都会有y属性 this.y = y;/ Foo.pro tot ype存放了新建对象的原型引用/ 所以我们可以将之用于定义继承和共享属性或方法/ 所以

2、,和上例一样,我们有了如下代码:/继承属性xFoo.prototype.x = 10;/ 继承方法calculateFoo.prototype.calculate = function (z) return this.x + this.y + z;/ 使用 foo 模式创建 b and cvar b = new Foo(20);var c = new Foo(30);/ 调用继承的方法b. calculate(30); / 60c. calculate(40); / 80/ 让我们看看是否使用了预期的属性console.log(b. _proto_ = Foo.prototype, / tru

3、ec. _proto_ = Foo.prototype, / true/ Foo.prototype 自动创建了一个特殊的属性construetor/ 指向 a 的构造函数本身/实例b和c可以通过授权找到它并用以检测自己的构造函数b.constructor = Foo, / true c.constructor = Foo, / true Foo.prototype.constructor = Foo / trueb.calculate = b._proto_.calculate, / trueb._proto_.calculate = Foo.prototype.calculate / tr

4、ue);上述代码可表示为如下的关系:20_roto_ prototype_prQto构造函数与对象之间的关系cy30protoFoo.prototypecor stru ctor*IX10calculate_rate_1r IObject, prototypeFunctiaiir prototype_ roto_I上述图示可以看出,每一个 object都有一个prototype.构造函数Foo也拥有自己的 proto, 也就是Function.prototype, 而Function.prototype 的proto 指向了 Object.prototype. 重申一遍,Foo.prototy

5、pe只是一个显式的属性,也就是b和c的_proto_ 属性。这个问题完整和详细的解释有两个部分:面向对象编程.一般理论(OOP. The general theory),描述了不同 的面向对象的范式与风格 (OOP paradigms and stylistics),以及与 ECMAScript 的比较。面向对象编程.ECMAScript 实现(OOP. ECMAScript implementation),专门讲述了 ECMAScript中的面向对象编程。现在,我们已经了解了基本的object原理,那么我们接下去来看看ECMAScript 里面的程序执行环境runtime program execution. 这就 是通常称为的“执行上下文堆栈”execution context stack。每一个元素 都可以抽象的理解为 object。你也许发现了,没错,在ECMAScript中, 几乎处处都能看到object的身影。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号