Skip to content

The performance problem of defineProperty to array index

guankaishe edited this page Feb 2, 2015 · 2 revisions

I meet with a performance problem when using defineProperty to Array's index.

defineProperty to Array's index can help muxjs to observe array item value change when set the value using:

array[index] = value

But defineProperty that property name is a number or number string, it is much slower than defineProperty that property isn't a number. Test case as below:

defineProperty of Number property name

var obj = {}
console.time('def number')
Object.defineProperty(obj, 0, {
get: function () {},
set: function () {}
})
console.timeEnd('def number')

defineProperty of word property name

var obj = {}
console.time('def word')
Object.defineProperty(obj, 'a', {
get: function () {},
set: function () {}
})
console.timeEnd('def word')
Clone this wiki locally