Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Свойства функции (https://javascript.ru/forum/misc/40161-svojjstva-funkcii.html)

lancer 26.07.2013 02:55

Свойства функции
 
Пример из раздела Функции-объекты. Почему бы вместо
var funcObj = arguments.callee
funcObj.test++
не использовать func.test++ на манер объявления func.test = 1, которое находиться за функцией.
function func() {
	var funcObj = arguments.callee
	funcObj.test++
	alert(funcObj.test)
}
func.test = 1
func()
func()


Еще.
Цитата:

В примере нельзя было сделать присвоение:
var test = arguments.callee.test
test++

Цитата:

так как при этом операция ++ сработала бы на локальной переменной test, а не на свойстве test объекта функции
Но почему тогда funcObj все таки будет ссылкой на функцию(на arguments.callee), а не локальной переменной.
var funcObj = arguments.callee
test++

danik.js 26.07.2013 05:07

Цитата:

Сообщение от lancer
Почему бы вместо ... не использовать func.test++

А действительно, почему бы не использовать, а?
Цитата:

Сообщение от lancer
Но почему тогда funcObj все таки будет ссылкой на функцию(на arguments.callee), а не локальной переменной.

Потому что копируются только примитивы, а при присвоении объектов (а функция ведь тоже является объектом) на самом деле присваивается ссылка на объект.

lancer 26.07.2013 15:46

Теперь все понял из этой статьи, но не могу представить ситуацию, когда нужно, чтобы функция присваивалась переменной.

lancer 27.07.2013 00:54

Up.

lancer 29.07.2013 01:13

Пример нашел уже.


Часовой пояс GMT +3, время: 05:39.