Я ищу основные различия между этими двумя методами.
На некоторых сайтах упоминались проблемы с читабельностью, но моя проблема в основном связана с производительностью. Похоже, defineProperty () работает быстрее, но я не могу понять, почему.
var FOR_TIME = 10000;
console.time("prop");
for(var i = 0; i < FOR_TIME; i++) {
var test = {};
Object.defineProperty(test, "ba", {});
Object.defineProperty(test, "bab", {});
Object.defineProperty(test, "bac", {});
}
console.timeEnd("prop");
console.time("props");
for(var i = 0; i < FOR_TIME; i++) {
var test = {};
Object.defineProperties(test, {
a: {},
ab: {},
ac: {}
})
}
console.timeEnd("props");
Вот результат результатов консоли: (выполнено 3 раза)
1- prop: 9.251ms props: 17.034ms
2- prop: 10.050ms props: 22.443ms
3- prop: 11.013ms props: 17.086ms
Используемая версия узла: v10.15.0