Функция. ее имя и (). Когда ставить? Когда не ставить?
Еще пример из того же раздела 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. То есть свойство объекта становится функцией? Или наследует свойства функции? Или просто в таком случае к нему обращаться нужно как к функции, хотя это всего лишь свойство? |
Цитата:
// Свойство стало методом user.sayHi = func ... // Свойству присвоили значение, которое вернула функция user.sayHi = func() Цитата:
|
jsuse, вы слишком мудрите. В js объекты передаются по ссылке.
func - ссылка на функцию. func() - запуск исполнения функции(возвращает результат) Если совсем упростить: в данном случае свойство sayHi просто становится ссылкой на ту же функцию, что и func. И соответственно данная функия может быть запущена как user.sayHi() и будет выполняться в контексте user . В скобки как обычно передаются параметры(если что).
var firstName="Даздраперма";
var user = {
firstName: "Вася"
};
function func() {
return this.firstName;
}
user.sayHi = func;
alert([
'func: '+ func,
'func(): '+func(),
'user.sayHi(): '+user.sayHi()
].join('\n\n'))
|
| Часовой пояс GMT +3, время: 00:47. |