把数据和行为(对数据的操做)结合起来,有类的概念,经过类建立任意多个具备相同属性和方法的对象函数
var Person = { name: "wheeler", age: 25, inMeeting: function () { return "I am in Meeting"; } };
为了不重复造轮子,产生大量的代码,咱们能够使用工厂模式和构造函数模式。
建立对象目前有两种方式:this
var Person = { name: "wheeler", age: 25, inMeeting: function () { return "I am in Meeting"; } };
优势:灵活方便
缺点:每建立一个新的对象都须要写出完整的定义语句,不便于建立大量相同类型的对象,不利于使用继承等高级特性code
主要是配合构造函数使用对象
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这样的原生构造函数,在运行时会自动出如今执行环境中。ip
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, "嘿嘿");
以上代码:作用域
以这种方式调用构造函数实际上会经历如下4个步骤:io