[翻译]JavaScript中对象的层次与继承(2)
作者:chenzhe 来源:chenzhe 发布时间:2008-12-31 13:36:00
标签:类,对象,继承,javascript,编程
表1是对这些区别的摘要。这篇文章的剩下的部分会描述使用JavaScript构造器和prototype来创建对象层次的细节,并且对比在Java中完成相同工作的方法。
表 1基于类(Java)与基于原型(JavaScript)的对象系统的对比
基于类(Java) | 基于原型(JavaScript) |
类和实例是不同的实体。 | 所有的对象都是实例。 |
使用类定义来定义类;使用构造函数来将类实例化。 | 使用构造函数定义,并且创建一些列对象。 |
使用new操作符来创建一个新的对象。 | 一样。 |
使用类定义来定义已存在类的子类,以此来创建对象层次。 | 通过将一个对象设置为关联到某个构造函数的原型,从而创建对象层次。 |
通过类链(class chain)继承属性。 | 通过原型链继承属性。(prototype chain) |
类定义设置类的所有实例的所有属性。不能再运行时动态添加新的属性。 | 构造函数或者是原型指定了一系列原始(initial)属性。可以动态地向个别对象或者一个对象集合添加或删除属性。 |
Employee雇员实例
本文剩下部分的工作就是实现图1中简单的employee雇员层次。
一个简单的对象层次
图 1
* Employee有name属性(默认值为空字符串)和dept属性(默认值"general")。
* Manager以Employee为基础。它添加了一个reports属性(默认值是空的数组,我们意在让其成为一个值为Employee对象的数组)。
* WorkerBee同样以Employee为基础。它添加了projects属性(默认值是空的数组,我们意在让其成为一个值为字符串的数组)
* SalesPerson以WorkerBee为基础。它添加了quota(配额)属性(默认值100)。它还将dept属性的值覆盖为"sales",表明所有的销售人员都在同一个部门。
* Engineer以WorkerBee为基础。它添加了machine(机器)属性(默认值为空字符串)。它同样将dept属性的值覆盖为" engineering "。


猜你喜欢
- 在Matplotlib实际使用中会有生成不同大小subplots的需求。import numpy as np import matplotl
- requests接口测试的介绍requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到,Req
- 当代码已经写得差不多,发现某个变量名需要修改,但代码中很多地方都有该变量,一一修改太麻烦了,在不同的情景下,可以采取更加简便的方法,如下介绍
- part 1最近在学习go自带的rpc,看完了一遍想着自己实现一个codec,也就是自定义消息的序列化和反序列化。消息的序列化和反序列化涉及
- 1.先引入switchery.css 和 switchery.js2.绘制 checkbox按钮 : a.静态页面写法 未选中时
- 1.爬虫是什么所谓爬虫,就是按照一定的规则,自动的从网络中抓取信息的程序或者脚本。万维网就像一个巨大的蜘蛛网,我们的爬虫就是上面的一个蜘蛛,
- CNN(Convolutional Neural Networks) 卷积神经网络简单讲就是把一个图片的数据传递给CNN,原涂层是由RGB组
- 作者: wyh草样出处:https://www.cnblogs.com/wyh0923/p/14047466.html1、数据库配置类 Mo
- 0、背景shutil.move可以实现文件或者目录的移动。打印:import shutilhelp(shutil.move)# 打印如下:&
- 前言: 经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、
- 经常会看到这种弹出层背景变暗的效果,感觉手痒于是自己写了一个基于jquery的弹出层类。我习惯先写好结构和样式,然后再写js交互效果。结构定
- 环境python3.6合并前第一个文件和第二个文件代码file1 = open("my.txt","r&quo
- 在上一篇博客介绍TOML配置的时候,讲到了通过信号通知重载配置。我们在这一篇中介绍下如何的平滑重启server。与重载配置相同的是我们也需要
- 本文实例讲述了python使用socket远程连接错误处理方法。分享给大家供大家参考。具体如下:import socket, syshost
- MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下
- python使用ctypes模块调用windows api GetVersionEx获取当前系统版本,没有使用python32#!c:/py
- 数字函数 ABS():求绝对值。 CEILING():舍入到最大整数。 FLOOR():舍入到最小整数。 ROUND():四舍五入 ROUN
- 在学习python代码时,看到有的类的方法中第一参数是cls,有的是self,经过了解得知,python并没有对类中方法的第一个参数名字做限
- 问题你想通过某种对齐方式来格式化字符串解决方案对于基本的字符串对齐操作,可以使用字符串的 ljust() , rjust() 和 cente
- cmake-2.8.3.tar.gzmysql-5.5.8.tar.gz一,cmake-2.8.3的安装:tar -zxf cmake-2.