什么是面向对象
把数据和行动(对数据的操纵)结合起来,有类的观点,经由历程类建立恣意多个具有雷同属性和要领的对象
- 继续:能够使子类复用父类公然的变量、要领;
- 封装:屏障一系列的细节。使外部挪用时只需晓得这个要领的存在;
- 多态:父类的要领继续的到子类今后能够有差别的完成体式格局;
var Person = {
name: "wheeler",
age: 25,
inMeeting: function () {
return "I am in Meeting";
}
};
建立对象
为了防止反复造轮子,发生大批的代码,我们能够运用工场形式和组织函数形式。
建立对象现在有两种体式格局:
- 对象字面量
var Person = {
name: "wheeler",
age: 25,
inMeeting: function () {
return "I am in Meeting";
}
};
长处:天真轻易
瑕玷:每建立一个新的对象都须要写出完全的定义语句,不便于建立大批雷同范例的对象,不利于运用继续等高等特征
- 运用new表达式
主如果合营组织函数运用
function Person(name, age, dream){
this.name = name;
this.age = age;
this.dream = dream;
this.myDream =function () {
alert(this.dream);
}
};
person1 = new Person('wheeler', 25, "哈哈");
person2 = new Person('wheeler2', 26, "嘿嘿");
工场形式
什么是工场形式?就是像工场一样批量建立对象。详细来说,笼统建立详细对象的历程。
var createPerson = function (name, age, dream) {
var person = {
name: name,
age: age,
dream: function () {
return dream;
}
};
return person;
};
var person1 = createPerson('wheeler', 25, "哈哈");
var person2 = createPerson('wheeler2', 26, "嘿嘿");
组织函数形式
ECMAScript 中的组织函数可用来建立特定范例的对象。像Object和Array如许的原生组织函数,在运行时会自动出现在实行环境中。
function Person(name, age, dream){
this.name = name;
this.age = age;
this.dream = dream;
this.myDream =function () {
alert(this.dream);
}
};
var person1 = new Person('wheeler', 25, "哈哈");
var person2 = new Person('wheeler2', 26, "嘿嘿");
以上代码:
- 没有显式地建立对象;
- 直接将属性和要领赋给了this对象;
- 没有return语句。
以这类体式格局挪用组织函数现实上会阅历以下4个步骤:
- 建立一个新对象;
- 将组织函数的作用域赋给新对象(因而this就指向了这个新对象);
- 实行组织函数中的代码(为这个新对象增加属性);
- 返回新对象。