各位前輩好,想請教以下兩種物件宣告方式有什麼不同嗎?
const obj = {
Read: 'Read',
Create: false
}
const obj = new Object({
Read: 'Read',
Create: false
})
對於 obj
變數來說,沒有什麼不同。
對於 JavaScript 來說,使用字面宣告的效能會比使用 new Object()
來的好
測試了一下,意外的效能確實比較好
const iterations = 1000000
console.time('Function No New')
for (var i = 0; i < iterations; i++) {
(() => {
const obj = {
Read: 'Read',
Create: false
}
return obj
})()
}
console.timeEnd('Function No New')
console.time('Function New')
for (var i = 0; i < iterations; i++) {
(() => {
const obj = new Object({
Read: 'Read',
Create: false
})
return obj
})()
}
console.timeEnd('Function New')
兩者是相同的。
但一般初始化值來說還是用第一種方式。
new 宣告的方式常用在暫存式或是臨時性的變數上。
或是不確定的屬性賦值的情況下。
會先用
obj = new Object();
來處理。
javascript 建立 Object的方法有很多種。
如
function Car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
var car1 = new Car('Eagle', 'Talon TSi', 1993, rand);
另外還有的是
var Animal = {
type: 'Invertebrates', // Default value of properties
displayType: function() { // Method which will display type of Animal
console.log(this.type);
}
};
var animal1 = Object.create(Animal);
不過就單純 const 常數定義來說。基本給值就可以了。