面向对象的特性
1.封装性
1.1 js 对象就是 无序的键值对的集合
1.2 键值如果是数据( 基本数据, 复合数据, 空数据 ), 就称为属性
1.3 如果键值是函数, 那么就称为方法
1.4 对象就是将属性与方法封装起来
1.5 方法是将过程封装起来
2. 继承性
所谓继承就是自己没有, 别人有,拿过来为自己所用, 并成为自己的东西.
混入式继承:就是将一个对象的值遍历赋值给另一个对象
重要重要重要
动态特性:是指对象创建好后动态的为对象创建属性和方法
//构造函数的返回值 |
|
| //1.如果不写返回值,默认返回的是新创建出来的对象 (一般都不会去写这个return语句) 手动return this |
| //2.如果我们自己写return语句 return的是空值(return;),或者是基本类型的值或者null,都会默认返回新创建出来的对象 |
| //3.如果返回的是object类型的值,将不会返回刚才新创建的对象,取而代之的是return后面的值 |
1.构造函数是干什么用的?
在JavaScript中,构造函数是给对象添加属性,初始化属性用的。
2. 对象的创建过程(实例化)
var p = new Person();
以上面这个p对象创建为例:
1.首先使用new关键字创建对象,类似于使用{}
,这个时候创建出来的对象是一个"没有任何成员"的对象。这里需要注意两点:
1.1使用new
关键字创建的对象,对象的类型就是创建这个对象使用的构造函数的函数名
2.使用{}
创建对象,对象的类型一定是Object
,相当于使用了new Object()
3.使用构造函数为其初始化成员
4.在构造函数调用开始的时候,有一个赋值操作,也就是让this =
刚创建出来的对象
5.在构造函数中,this
就代表刚创建出来的对象
6.在构造函数中,利用对象的动态特性,为对象添加成员
如果构造函数没有参数,在创建对象/调用的时候可以省略。建议不要省略
问题:var stu = {};创建对象的时候,若需要多个对象使用他中的方法 需要创建多次 这样并不好
理想解决办法:原型(原型也是对象)
构造函数的创建的同时代表原型对象的创建
构造函数是通过本身的prototype这个属性与原型建立起来的关系
若有不足请多多指教!希望给您带来帮助!