1.面向过程:凡事亲力亲为,注重的是过程
2.面向对象:我一个对象帮忙完成,注重的是结果
1. var obj=new object();—工厂 函数:创建-个函数,把实例化对象的过程封装起来,并返回这个对象
2. var bj={}
3. function Person(name){
this. name= name
}
var obi=new Person('张二"):
面向对象三个特征:封装,继承,多态
原型:
*在构造函数中 有一个prototype属性,叫原型,也是一个对象,是给程序员用的是标准的属性
在实例对象中, 有一个proto_属性,叫原型,也是一个对象,是给浏览器用的不是标准属性,一般不用
在构造函数中的prototype中添加的属性和方法,实例对象可以直接调用
正常的写法:实例对象. proto_. 属性-----》 实例对象.属性
本身在构造函数中定义的属性和方法,当实例化对象时,实例对象中的属性和方法
都在自己的空间中存在的,如果是多个对象,这些属性和方法都在单独的空间里面,浪费
内存,所以为了数据共享,节省空间,可以把一些共用的属性和方法写在原型对象中
原型的作用之一:数据共享, 节省空间
构造函数. prototype.属性=值;
构造函数. prototype.方法function ( {}
简单写法:
构造函数. prototype={
constructor:构造函数,
属性:属性值
方法: function () {
}
}
构造函数, 实例对象,原型对象三者的关系
构造函数中的 prototype属性(原型对象)中一个constructor属性, 和构造
函数-样,constructor执行原型对象所在的构造函数
实例对象中的_ proto__ 属性指向prototype
构造函数 通过实例化实例化对象