基于原型的JavaScript对象和基于类的对象比较

首先举个形象的例子,如果建筑是基于类的系统,则建筑师会先画出房子的蓝图,然后房子都按照该蓝图来建造;如果建筑是基于原型的,建筑师首先会建一所房子,让后将房子都建成这种模样。

基于类的基于原型的
1.定义类1.定义原型对象
2.定义类的构造函数2.定义对象的构造函数
3.实例化对象3.将构造函数关联到原型
4.实例化对象

基于类的对象实现

/* step 1 */

public class Prisoner{
    public int sentence  = 4;
    public int probation = 2;
    public string name;
    public string id;

    /* step 2 */

    public Prisoner(string name,string id){
    this.name = name;
    this.id   = id;
    }
}

/* step 3 */

Prisoner firstPrisoner  = new Prisoner("Dan""200128");
Prisoner secondPrisoner = new Prisoner("Jenny","200127");

基于原型的对象实现

//* step 1 *

var proto = {
snetence:4,
prabation:2
};

//* step 2 *

var Prisoner = function(name,id){
this.name    = name;
this.id      = id;
}

//* step 3 *

Prisoner.prototype = proto;

//* step 4 *

var firstPrisoner  = Object.create(proto);
firstPrisoner.name = "Dan";
firstPrisoner.id   = "200128";

var secondPrisoner   = Object.create(proto);
 secondPrisoner.name = "Jenny";
  secondPrisoner.id  = "200127";


在每个方法中都是首先创建对象的模板,模板在基于类的编程中叫做类,在基于原型的编程中叫做原型对象。但他们的作用都一样:作为创建对象的结构。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值