Что не было указано, так это то, что в случае:
function bla(){this.a = 1}
alert (bla.a)
bla не был вызван ни как конструктор, ни как метод объекта, поэтому его Это ключевое слово установлено на объект global / window.Следовательно, к глобальному / оконному объекту добавляется свойство a , и вы можете сделать:
alert(a)
, но обычно это нежелательный результат.В строгом режиме ES5 при таком вызове функции ключевое слово this будет undefined , поэтому this.a
выдаст ошибку.