有人能告訴我是什麼樣的區別:什麼是JavaScript對象的差異「新」的關鍵字
function Customer(name, age) {
this.Name = name;
this.Age = age;
}
var cust1 = new Customer('Your Name', 20);
var name1 = cust1.Name;
var age1 = cust1.Age;
和:
function Customer() {
return {
Name: 'Your Name',
Age: 20
}
};
var cust2 = Customer();
var name2 = cust2.Name;
var age2 = cust2.Age;
它產生相同的輸出,畢竟,但是技師是不同的,我不知道爲什麼。
什麼是「新」的宗旨,在第一個,雖然我可能只是這樣做:
var cust1 = Customer('Your Name', 20);
var name1 = cust1.Name;
var age1 = cust1.Age;
嗯,沒有。 1是一個構造函數,而沒有。 2返回一個評估對象文字。嘗試'Object.getPrototypeOf(...)',你會發現一個區別。這個問題很有趣,值得一個很好的答案,因爲這兩種模式都可以用於不同的目的。 –
對不起,我更新了我的帖子。 –
這不是重複的 - 問題是關於構造函數與工廠函數,而不是構造函數與對象文字,並且現有問題的答案不能回答這個問題。 – Stuart