Глядя на недавний API загрузчика Google Maps source, я задаюсь вопросом, что является целью следующее:Удаление свойства объекта внутри его определения; Зачем?
google.maps.Load = function(apiLoad) {
delete google.maps.Load;
...
Почему вы delete
свойство объекта, внутри его определения? Я подозреваю, что это может привести к некоторому увеличению производительности, но не может понять, как свойство может удалить себя в своем определении.
'delete' ** always ** делает вещи медленнее (по крайней мере, в V8). В этом случае он, скорее всего, очистится, так что не удалось случайно «загрузить» его дважды. Если это предположение справедливо, лучшим решением было бы переназначить его на пустую функцию: 'google.maps.Load = function() {};' – zerkms
@zerkms хорошо, я думал, что он освободит память, и, следовательно, увеличит общая производительность - хотя это может быть медленный вызов. Это правильно? – Mahdi
Это не так. Подробнее см. Http://debuggable.com/posts/understanding-hidden-classes-in-v8:4c7e81e4-1330-4398-8bd2-761bcbdd56cb. – zerkms