高階教程上提到創建物件的方法有字面量法、工廠模式、建構子模式、原型模式、混合模式等等。在工廠模式裡面有個例子,
function creatPerson(name){
var obj=new Object();
obj.name=name;
return obj;
}
var person=creatPerson(“hello”);
這裡在函式內部已經使用了建構函式模式了啊,那幹嘛還有工廠模式的出現了?這幾種創建物件的方法是一步一步發展而來的嗎?函數的prototype屬性是為了原型模式才有的,還是自javascript誕生之初就已經存在了,有大牛能夠講一下這個歷史嗎?
為了避免太複雜,你也這麼理解吧:
建構子模式:
var person = new Person('hello')
工廠模式:
var person = creatPerson('hello')
至於 prototype 的問題,參考我另一個回答:javascript是物件導向的,怎麼體現javascript的繼承關係?