把數據和行爲(對數據的操做)結合起來,有類的概念,經過類建立任意多個具備相同屬性和方法的對象函數
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