面向对象是将功能通过对象实现,将功能封装到对象之中,使对象去实现具体的细节,数据首先,算法其次,数据的一种优化,操作简单,简化过程,面向对象的三大特征:封装,继承,多态。
面向对象:可以创建任意多个相同属性和方法的对象,对象是一组没有特定顺序的值,对象的每个属性或方法都有一个名字。每个名字都映射了一个值。每个对象都是基于一个引用类型创建的。
属性类型:数据属性,访问器属性
创建对象:工厂模式、构建函数模式、使用构造函数模式和原型模式、动态原型模式、寄生构造函数模式
new:
1.创建一个新对象
2.将构造函数的作用域赋给新对象
3.执行构造函数的代码
4返回新对象。
var
obj =
new
Base();<===>
var
obj = {};//
空对象obj
obj.__proto__ = Base.prototype;//
空对象的__proto__成员指向了Base函数对象prototype成员对象
Base.call(obj);//
Base函数对象的this指针替换成obj,然后再调用Base函数,于是我们就给obj对象赋值了一个id成员变量,这个成员变量的值是”base”,关于call函数的用法。
检测对象的类型:还是instanceof操作符更可靠一些。