1. 程式人生 > >ES5 - 面向對象編程

ES5 - 面向對象編程

模式 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 - 面向對象編程