ES5 - 面向對象編程
阿新 • • 發佈:2017-09-17
模式 color ret 規範 工廠 new font bject -s
1. 創建對象的幾種方式
/** * 普通方式 */ var obj = {}; obj.name = ‘XingyaZhao‘; obj.age = 23; obj.intro = function () { return "My name is " + this.name + ", and I‘m " + this.age + "."; }; alert(obj.intro());
/** * 工廠模式 */ function createObject(name,age) { var obj = {}; obj.name = name; obj.age= age; obj.intro = function () { return "My name is " + this.name + ", and I‘m " + this.age + "."; }; return obj; } var obj1 = createObject(‘XingyaZhao‘,23); var obj2 = createObject(‘HailinWang‘,22); alert(obj1.intro()); alert(obj2.intro());
/** * 構造函數方式 */ function Person(name, age) {this.name = name; this.age = age; this.intro = function() { return "My name is " + this.name + ", and I‘m " + this.age + "."; }; } var zhao = new Person(‘XingyaZhao‘,23); var wang = new Person(‘HailinWang‘,22); alert(zhao.intro()); alert(wang.intro());
構造函數方式與工廠模式的區別
1.構造函數沒有new Object,但它後臺會自動var obj = new Object
2.this就相當於obj
3.構造函數不需要返回對象引用,它是後臺自動返回的
構造函數方式的規範
1.構造函數也是函數,但函數名第一個字母大寫
2.必須通過 new 構造函數名() 來創建對象,new Person()
ES5 - 面向對象編程