Object建構子/物件字面量:
撇開設計模式不談,使用最基本的方法,就是先呼叫Object建構子來建立一個對象,然後給對象添加屬性.
var student = new Object(); student.name = "xiao ming"; student.age = 20; student.getName = function () { alert(this.name); }
熟悉javascript 對象字面量的同學,可以換一種更好的寫法,至少看上去更簡潔。
var student = { name: "xiao hong", age: 18, getName: function () { alert(this.name); } };
缺點:上面方法有個缺點就是,使用同一個介面建立很多類似的物件時,會產生大量重複的程式碼。這個應該很容易理解了,函數(方法或類別)一般是用來創建公共的方法,上面的物件創建過程,根本沒有函數的影子,所以談不上什麼重用。
自訂類型的建構子:
建構子可以用來建立特定類型的物件。
function Student(name,age) { this.name = name; this.age = age; this.sayName = function () { alert(this.name); } } var p3 = new Student("ming", 20); var p4 = new Student("hong", 18); alert(p3 instanceof Student); alert(p3.sayName==p4.sayName); //false
缺點:自訂建構函式的不足之處就是,每個物件都會重新創建自己的方法,其實這些方法功能是一樣的(像sayName),但是它們卻不相同(p3.sayName和p4.sayName不相等)。
建構子與原型的組合:
function Student(name, age, friends) { this.name = name; this.age = age; this.friends = friends; } Student.prototype = { constructor: Student, sayName: function () { alert(this.name); } };
總結:建構子與原型的組合 是一種廣受認可的創建自訂類型的方法。 也是上面這些方法中的最優方法。
以上是Javascript建立自訂物件幾種方式實例匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!