1.理解:
面向对象编程可以看作是使用一系列对象相互协作的软件设计。 在 OOP 中,每个对象能够接收消息,处理数据和发送消息给其他对象。每个对象都可以被看作是一个拥有清晰角色或责任的独立小机器。
2.面向对象术语:
Namespace 命名空间在JavaScript中,命名空间只是另一个包含方法,属性,对象的对象。
var obj=obj||{}
Class 类
JavaScript可用方法作类。定义一个类跟定义一个(构造)函数一样
function Person() { }
// 或
var Person = function(){ }
Object 对象
类的实例(new 构造函数)
function Person() { }
var person1 = new Person();
var person2 = new Person();
Property 属性
Method 方法
Constructor 构造函数
构造函数
function Person() { }
在Javascript中,继承通过赋予子类一个父类的实例并专门化子类来实现。在现代浏览器中你可以使用 Object.create(ecs5) 实现继承.
继承的两个主要对象:_proto_和prototype
_proto_:所有引用对象具有属性__proto__
,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型中定义的属性和方法。
prototype:几乎所有的函数(除了一些内建函数)都有一个名为prototype(原型)的属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以有特定类型的所有实例共享的属性和方法。prototype是通过调用构造函数而创建的那个对象实例的原型对象
Abstraction 抽象
Polymorphism 多态