Еще пример из того же раздела
http://beta.javascript.ru/tutorial/this
var user = {
firstName: "Вася"
};
function func() {
alert( this.firstName );
}
user.sayHi = func;
(); // this = user
Не понимаю вот что. Вот создается новое свойство user.sayHi. Свойству присваивается функция func. Почему тогда пишется user.sayHi = func, а не user.sayHi = func() ? Ведь выше в коде она определяется как function func(), со скобками т.е., а при sayHi уже без скобок.
И почему для вызова свойства нужны скобки? user.sayHi(), а не user.sayHi. То есть свойство объекта становится функцией? Или наследует свойства функции? Или просто в таком случае к нему обращаться нужно как к функции, хотя это всего лишь свойство?