W3C создает спецификацию, которая описывает поведение, которому должны следовать браузеры (пользовательские агенты) для HTML, JavaScript и CSS.Большинство поставщиков браузеров реализуют язык JavaScript, чтобы он следовал этой спецификации.
Код, который вы описали выше, где определено свойство onload, реализован в собственном JavaScript, поставляемом с браузером.Каждый поставщик браузеров реализует что-то, что вполне возможно работает немного по-своему, но конечный результат, как правило, одинаков.
Вы вполне могли бы следовать этому же шаблону для своего объекта Foo.Однако я знаю, что единственный способ сделать это изначально - привязать событие onchange к элементу DOM.Свойство src в изображении является свойством элемента DOM.
Вашему классу Foo также необходимо связать значение с элементом DOM, если вы хотите воспользоваться преимуществом события onchange.Тем не менее, могут быть другие способы запуска событий при изменении свойства (в отличие от вызова метода, который может установить свойство, а также вызвать другие функции.)