面向对象编程:Object Oriented Programming,简称OOP。相比于过程式编程(procedural programming),OOP更灵活,代码可复用,高度模块化等特点。
什么是对象(object)?
- 对象是单个实物的抽象表示,一个对象可以表示一类实物,实物之间的关系就变成了对象间的关系,从而可以模拟真实情况,面向对象去编程。
- 对象是一个容器,属性(property)就是对象的状态,方法(methods)就是对象的行为。
构造函数
JavaScript的对象体系基于构造函数(constructor)和原型链(prototype)。构造函数就是对象的模板,构造函数也是一个普通的函数,用来构造对象,描述对象的基本结构。构造函数有两个特点,一是使用this关键字,代表未来要生成的对象的实例,二是使用new操作符来生成对象。new命令
- new命令的用法
执行构造函数,生成实例对象var Vehicle = function (run) { this.price = 1000; this.run = run }; var v = new Vehicle('开车'); v.price // 1000 v.run // '开车'
- new命令原理
new命令做了四件事- 创建一个空对象,作为要返回的对象实例 - 将空对象的原型指向构造函数的prototype属性 - 将空对象赋值给函数内部的this关键字 - 开始执行构造函数内部的代码
注意:
对于普通函数也就是内部没有this关键字的函数使用new命令,会返回一个空对象。
- new.target
- new命令的用法