咱们知道生活中客观存在的一切事物皆为对象,那在程序中的对象是什么样子呢?咱们能够将程序中的对象理解为客户端世界中的对象在一种计算机中的一种表示方式.全部的编程语言中提到的对象其性质都是相似的,它每每对应内存中的一块区域,在这个区域中存储对象的属性或方法信息。javascript
在JS中咱们能够直接基于{}定义对象,在对象内容定义属性和方法,例如:
在JS中咱们能够将对象理解为用于封装属性和方法的一个结构体,例如前端
若是须要反复建立多个相同结构的对象时,用{}代码就很冗余——重复。也不便于维护!
假如在JS中咱们但愿很是方便的定义多个结构相同,但属性值不一样的对象,能够直接基于构造函数( 定义同一类型多个对象的相同属性结构的特殊函数)进行对象建立,例如:java
建议:只要反复建立多个相同结构的对象,都要用构造函数来建立对象.
在实际应用中咱们尽可能不要在构造函数中再去定义函数,例如:编程
假如构造函数中再定义函数,会在构建对象时,为构造函数内部的函数开辟额外的函数空间。
JS中的对象用于封装属性和方法.如图所示:segmentfault
JS中为了实现属性或方法的可重用性,提供了一种继承机制,这种继承的方式须要借助Prototype对象去实现。Prototype对象是在定义构造函数时自动建立,用于存储全部共有属性和方法的一个对象,全部经过此构造函数构建的对象都继承这个原型对象.
构造函数中的原型对象分析,如图所示:编程语言
原型对象(ProtoType)对象的继承,如图所示:函数
在对象中添加共有属性,如图所示:spa
在对象中添加共有方法的.如图所示:3d
基于JS原型对象同时添加多个共有方法,如图所示:对象
原型链是由多级父对象(原型对象)逐级继承造成的链式结构。这个原型链保存着一个对象能够访问的全部父级原型对象,以及这个对象可访问到的全部属性和方法。
JS中咱们定义的全部构造函数,默认只想的原型对象为Object类型中的原型对象,如图所示:
多态通常指同一个函数(行为),在不一样状况下表现出的不一样的状态。从应用上有两种形式,分别为重载和重写。
重载的定义:一个函数,根据传入的实参值不一样,执行不一样的逻辑。
重写的定义:在子对象中定义一个和父对象中成员同名的成员。只要从父对象继承来的东西很差用,就用重写本身的!
在子对象中定义一个和父对象中成员同名的自有成员,例如:
JavaScript中对象的类型能够理解为构造方法和原型对象的结合体,当咱们须要查看其对象类型时,能够经过构造方法名.
JS中有11种内置对象类型,分别为String, Number, Boolean, Array, Date, RegExp, Math(对象), Error, Function, Object, global(对象)
本小节主要是对JS中对象作了简介,并经过实践方式分析JS中对象的建立,对象特性以及对象内置类型。