Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по определению функции (https://javascript.ru/forum/misc/21808-vopros-po-opredeleniyu-funkcii.html)

capscom 24.09.2011 23:02

Вопрос по определению функции
 
Изучая ява-скрипт, ни как не могу понять принцип работы такой записи:

var p = function(){
       ....
};

p.def = {
   ...     
};


Чем, в данном случае, является объект p.def? Свойством класса? А сама p = function() - это получается конструктор?

Поясните, пожалуйста, новичку. Хочется разобраться.
Спасибо.

Kolyaj 24.09.2011 23:20

Т.к. p -- функция, то p.def, очевидно, является свойством функции.

capscom 24.09.2011 23:25

Kolyaj, спасибо. То есть не только у объектов, но и у функций есть свойства?
И как из функции правильно обращаться к ее свойствам?

B@rmaley.e><e 24.09.2011 23:59

Цитата:

Сообщение от capscom
То есть не только у объектов, но и у функций есть свойства?

В JS всё (с некоторыми оговорками) — объект. И функции в том числе.
Цитата:

Сообщение от capscom
И как из функции правильно обращаться к ее свойствам?

Так же, как и к свойствам объекта.
varName.propertyName

Kolyaj 25.09.2011 10:33

Цитата:

Сообщение от B@rmaley.e><e
В JS всё (с некоторыми оговорками) — объект. И функции в том числе.

Нет никаких оговорок, есть объекты, есть примитивные типы.

capscom 25.09.2011 12:03

B@rmaley.e><e, Kolyaj

Спасибо. И последний нюанс, если сделаю new p() , то p.def становится свойством класса ? и к нему можно обращаться теперь из методов, с помощью указателя this ?

Kolyaj 25.09.2011 12:10

Нет.

capscom 25.09.2011 12:15

Kolyaj, а почему нет? поясните, пожалуйста.

Kolyaj 25.09.2011 12:18

А почему должно быть да?

http://javascript.ru/tutorial/object

capscom 25.09.2011 12:42

Просто мне казалось что:
var test = new p()
test.def - свойство объекта будет равно значению p.def


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