Я хочу, чтобы иметь возможность отслеживать, сколько массивов используется определенной программой, так что я могу выяснить, была ли выделена ненужная память. Проблема, с которой я столкнулся, - это конструкция Javascript, что массив литерала []
не вызывает Array#constructor
. Есть ли другой способ отслеживать использование массива? ES5 и/или ES6 и далее.Как отслеживать, сколько массивов создано в Javascript?
var arrayConstructor = Array // store reference
window.arrCount = 0
window.Array = function() {
arrCount++;
return new Array();
}
var arr1 = new Array
window.arrCount // 1
var arr2 = []
window.arrCount // 1 : NOT WORKING!
Вы можете перехватывать вызовы на 'Массив .__ прото __. Constructor' или' Object .__ прото __. Constructor'? –
@DavidEhrmann Нет, я считаю, проблема в том, что javascript замыкает конструктор Array при использовании литералов. – user2167582
no Вы не можете переопределить литерал массива, см. Это: http://stackoverflow.com/questions/25084889/overriding-array-literal-in-javascript –