Getter/setter on javascript array?
Using Proxies, you can get the desired behavior: var _arr = [‘one’, ‘two’, ‘three’]; var accessCount = 0; function doSomething() { accessCount++; } var arr = new Proxy(_arr, { get: function(target, name) { doSomething(); return target[name]; } }); function print(value) { document.querySelector(‘pre’).textContent += value + ‘\n’; } print(accessCount); // 0 print(arr[0]); // ‘one’ print(arr[1]); // …