JavaScript_模拟类的行为

用javaScript来模拟强类型语言中类的概念,比如java中的类;

类的定义:具有相同属性和方法的一类事物的统称。

在js中类的所有实例对象都从同一个原型对象上继承属性。因此原型对象是类的核心。

类创建对象是通过构造函数的,原型虽然是类的核心,但是构造函数是类的外在表现。

原型对象是类的唯一标识:当前仅当两个对象继承自同一个原型对象时,他们才是属于同一个类的实例。而初始化对象状态的构造函数则不能作为类的标识,因为两个构造函数的prototype属性可能指向同一个原型对象。那么这两个构造函数创建的实例是属于同一个类的。

构造函数的名字通常用做类名。比如有一个对象o,我们想知道o是否是Person对象,可以这样写: o instanceof Person//如果o继承自Person.prototype,则返回true;

java中的类包括类方法,类字段,实例方法,实例字段;
js用三种对象的属性来模拟实现
1.构造函数对象

构造函数(对象)为js的类定义了名字。任何添加到这个构造函数对象中的属性都是类字段和类方法。

2.原型对象

原型对象的属性被类的所有实例所继承,所以原型对象上的属性作为实例方法,实例字段来实现;

3.实例对象

类的每个实例都是一个独立的对象,直接给这个实例定义的属性是不会为所有的实例对象所共享的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,159评论 0 6
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,242评论 0 21
  • 面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的慨念,而通过类可以创建任意多个...
    threetowns阅读 891评论 0 4
  • 博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...
    _Dot912阅读 1,461评论 3 12
  • 梦里江南烟雨稠 酒醒窗外游啊游 山外青山楼外楼 越过鸿壑又一沟 烟雨已逝楼空在 独留一人亦徘徊 醉复求醉愁复愁 明...
    深度Wanys阅读 220评论 0 0