Вы уверены, что console.log (this.dimensions) запускается ПОСЛЕ загрузки изображения? То, что вы добавили в img.onload, это функция обратного вызова, которая запускается после завершения загрузки образа в DOM. До завершения загрузки img m.dimensions пока не будут установлены. Изображение не загружается сразу после добавления обратного вызова, но загружается асинхронно и может завершиться в любое время.
Другими словами, вы запускаете console.log (this.dimensions) до того, как измерения будут установлены (до запуска обратного вызова onload). Бьюсь об заклад, если вы поместите console.log в вызов setTimeout, скажем, в течение 5 секунд, он запишет то, что вы ожидали.