Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как различить методы и свойства? (https://javascript.ru/forum/dom-window/7897-kak-razlichit-metody-i-svojjstva.html)

Kolyaj 26.02.2010 16:13

Не знаешь, почему в этом файле в комментариях ссылаются на ECMA, это же совсем другой язык
Цитата:

2167 /*

2168 * By ECMA 262, 15.4.4.11, a property that does not exist (which we

2169 * call a "hole") is always greater than an existing property with

2170 * value undefined and that is always greater than any other property.

2171 * Thus to sort holes and undefs we simply count them, sort the rest

2172 * of elements, append undefs after them and then make holes after

2173 * undefs.

2174 */

И да, в любом случае ещё 3 браузера осталось с неизвестными языками (IE с его JScript можно не трогать, с ним всё ясно). В них есть тип Array?

Dmitry A. Soshnikov 26.02.2010 18:53

Цитата:

Сообщение от Kolyaj
Function является наследником Object

Цитата:

Сообщение от Kolyaj
[] instanceof Object

Фокус: ;)

alert(Function instanceof Object === Object instanceof Function);


Так что, instanceof в JS может тоже с толку сбивать, хотя и имеет четкий однозначный алгоритм.

Объектный тип в ES - один - это тип Object (не путать с конструктором Object!).

Типы различных объектов (отличных от созданных new Object или {}) можно образно называть (в кавычках) - "подтипами". Но на самом деле - все они имеют тип Object.

И различие происходит только за счет внутренних свойств: [[Class]], [[Call]] и т.д.

Цитата:

Сообщение от tenshi
вот, специально для тебя нашёл определение типа array

http://hg.mozilla.org/tracemonkey/fi...rray.cpp#l1269

Цитата:

Сообщение от tenshi

А уровень реализации здесь мало имеет значения. Естественно, там удобней создать какую-то иерархическую структуру классов с отдельным описанием Array-я, Object-a и т.д. (для хранения своих методов, перегрузки определённых методов, как, например, у Array-я перегружен [[Put]] - запись свойства-индекса увеличивает .length).Но это не связано с уровнем абстракции ECMAScript-a, у которого есть только один объектный тип и называется он Object. А соответствующие конструкторы и их прототипы - это другое - и именно с этим связаны в реализациях классы Array, Object и любые другие.

А вот классифицируя "подтипами", например, на основании свойства [[Class]] (которое доступно для ES-абстракции) - да, можно разделять на подтип "Array" и "Object".

tenshi 26.02.2010 21:11

Цитата:

Не знаешь, почему в этом файле в комментариях ссылаются на ECMA, это же совсем другой язык
промышленный шпионаж

tenshi 26.02.2010 21:22

это референс-реализация, где object и array являются _разными_ типами.
у них есть общий предок, но он скрыт в реализации.

tenshi 10.04.2010 01:22

клуб знакомств, блин х) поехали всем форумом?

Astra 10.04.2010 01:24

Цитата:

Сообщение от tenshi (Сообщение 50912)
клуб знакомств, блин х) поехали всем форумом?

Не завидуй! Вот хочу с модером познакомиться! Что поделать??????:help:

B~Vladi 10.04.2010 01:30

Цитата:

Сообщение от Astra
Вот хочу с модером познакомиться! Что поделать??????

Знакомиться:D
tenshi, ты мне в теме ответил бы...

Astra 10.04.2010 01:31

Цитата:

Сообщение от B~Vladi (Сообщение 50914)
Знакомиться:D

Фото давай, а там посмотрим:)

tenshi 10.04.2010 01:36

блин, жалею, что я не модератор х))

B~Vladi 10.04.2010 01:40

tenshi, ну ответь мне плиз... очень нада!!! Я тебе 1л виски за ето куплю хочешь?


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