參考:Javascript Constructors- Why it should be used- Object Oriented Programming in Javascript
1.首先假設你需要創建一個classmate對象,它需要用name,age,city三個屬性:
var classmate1 = {};
classmate1.name = 'Gerg';
classmate1.age = 21;
classmate1.city = 'Shanghai';
2.同學asan說:幫我也創建一個對象唄。好勒
var classmate2 = {};
classmate2.name = 'asan';
classmate2.age = 22;
classmate2.city = 'dadongbei';
3.剩下40個學生一看:來來來,一人創一個唄。好勒
//其實我內心是拒絕的,想想,有什么辦法可以不用重復上面的動作40遍?
//bingo----我有個朋友叫函數,請它幫幫忙
function createClassmateObject(name,age,city){
var classmate = {};
classmate.name = name;
classmate.age = age;
classmate.city = city;
return classmate;
}
var classmate3 = createClassmateObject('qin','23','hlj');
4.這個時候班主任一看:這玩意不錯,來來來,幫老師們都弄份,不多,一共200個人。
//呵呵,no problem
//每次創建一個對象,返回一個對象也忒煩了,有沒有省事點的方法?
//bingo-----構造函數
function createTeacherObject(name,age,city){
this.name = name;
this.age = age;
this.city = city;
}
var teacher1 = createTeacherObject('lalala',35,'gz');
teacher1;
>>>undefined
5.不對呀,怎么返回undefined呀。
//bingo----好像漏了個new
function createTeacherObject(name,age,city){
this.name = name;
this.age = age;
this.city = city;
}
var teacher1 = new createTeacherObject('lalala',35,'gz');
teacher1;
>>>createTeacherObject {name: "lalala", age: 35, city: "gz"}
6.注意,返回的是一個對象喔
JavaScript Constructor functions automatically returns the object after it is populated.