Prototype 1.6.0 RC1: �������� Class � Event API, Hash ���������, ��������� ����...

by Sam Stephenson | October 16th, 2007

������ 2 ������ ����� ��������� 1.6.0 RC0, � ����� �� ���� ������� �� ��������� ��������� ����� � ��������� ��������� ��������� � Class � Event API. ��� �� ��������� ��������� �������� � ������ Hash. ��� ��������� ������ �������� ��� ������ �� ������ �����-���������, Prototype 1.6.0 RC1. ������� ����� ����� ������ ����� ��������� ��������� ����� ��������, ��������� �� �������, ������, ������������ � ����������� �������� Prototype.

��������� � Class API

��������� � API �������, �������� � [7833], ��������� �������, ������� �� �������� �� 1.6.0_rc0, � �������������� ���������� �������. ���� ������ ����������� � ��������� API, ��� �� ��� � ��������� ��������� ��� ����������� ��������� � ������� ������� Prototype.

��� ����� �� ������ Class.extend � Class.mixin ������, ����������������� Class.create ���������, � �������� ������ ���������� ������� � ������������ ������. API �� ��� ������� ���������� �� ����� pre-1.6 �������� Prototype. �� �� ������ ��������� ������ ������������, � �� �� �������� ������ �������� ������ � ������� superclass-� � ������� ������������ ��������� $super.

����� ������� ��������� - ��� �� ��� ��� ������ (�������, ������������ �� Class.create(), �� ���������� ���� �������) ������ ����� ����� “addMethods.” ���� ����� ��������� ���� �������� - ������, �������� � ������ �������� ���������� ��� ���������� ������.

��������, � 1.6.0_rc0 �� �� ������:

var Foo = Class.create();
Class.extend(Foo, { /* instance methods */ });

������ ���� ������:

var Foo = Class.create();
Foo.addMethods({ /* instance methods */ });

��� � � 1.6.0_rc0, �� ������ ��������� ���������� ������ ����� �� Class.create:

var Foo = Class.create({ /* instance methods */ });

����� ��������, ��� ���������� � 1.6.0_rc0 ������� ������ ������������ �� �����������, �� ������ �������� ����� ������ ���������� � Class.create (����������� ����� ����� ���������� ���������� ������):

var Bar = Class.create(Foo);
var Baz = Class.create(Foo, { /* instance methods */ });

������ Prototype ������� ����� addMethods ���������� ������ ����� �������� ������, ���������� � Class.create.

�� � �������, �� �������� Class.create ���, ����� �� �������� ���������� ����� ����������, ��� ��� �� ������ ������� ��������� ��������� ���������� ������� ��� ���������� � �����. ��� ������� �������� ���������� �������� (mixin) � �����, ����� ������������ ����� ����������� �������:

var Bar = Class.create(Foo, Enumerable, SomeMixin, { /* instance methods */ });
var Baz = Class.create(Enumerable, { /* instance methods */ });

�� ������ ��������� � ��� “�������” ������ ����� ������������ � ����������� ������������ �� ������� � ������������ � Prototype.

��������� � Event API

��������� ���������, �� ������ ��������� ������������ ���������������� ������� � [7835]: ����� ���� ���������������� ������� ������ ������ �������� ������������ ���. ��� ��� ������� ������� �������� ���������� ��� ���������������� ������� � �������������� ����������� DOM �������, ����� “mousewheel” � “DOMMouseScroll.”

����� ������������ ��������, Prototype ����������� ������� � �������, ��������������� � ������� the Event.DOMEvents, ��� ���������� DOM �������. ������, Prototype ���������� ������� ����������� ������������ ��� � ��������� ��������� � ����� ���������� ����� ��� ������� �� ������������� - ���������������� ������� ��� ���������� �������.

�� ������ �������� ���� ���, ������������ ������� “contentloaded” �� 1.6.0_rc0, ������� ������ ����� ������ ��� - “dom:loaded.” ��� �� �� ������ �������� ������������ ��� �� ���� ������ ���������������� ��������, ����� �� ����� ���� �������� � ������������. �� �������� ������������ ���������� ��������������� ��� ����������� ���, � ������� � ��������� ������� ��� ��� ������� (�������� “effect:queued”, “widget:activated”, � �.�.).

�� ��� �� ��������� ��������� ��������, �������� �������������, ������� ���������� ������������ inline-����������� ������� � ���� ����: ��� �� ����� ���������� ��������������� ������� � ������� Event.stop(e) � IE, ������ ��� event ������ �� ��� ��������. ������ Event.stop � Event.element ���������������� �� ���������� event-������ ������������� � �������� ��� ��������� � ������ � inline ���������� �������. ��������, ��� ������������� inline-������������ ������� �� ���������� �� ��������������; ��� ����� ��������� ��� ��� �� ������������� Event.observe ��� Element#observe �������, ��� ��� ��� ��������.

��������� ��������� ����� Hash

Backwards compatibility change – �������� �� ��, ��� ��� ������ ��� ��� �� �����, ��� � �����, ����� ������ �� ���������� � Hash ������� �� ���������� ������ Prototype.

�������� ���� ������ ������ � ��������� ��������� ��� �������������� ������� �������� � ����������� �������� � ���������� �������� ����. ��� ������ ��� ������ ���������/��������/������� �������� ���� �������� �� ���������; �� ������ ������������ ���������� ������ Hash#get(key), Hash#set(key, value) � Hash#unset(key). � �������:

var myhash = new Hash();

// ������ API  -->  ����� API
myhash.name = "����";  -->  myhash.set('name', '����');
myhash.name;          -->  myhash.get('name');
delete myhash.name;   -->  myhash.unset('name');

�� ����� ������ ������������ � ������� ����������� � Hash API:

������ ��������� � ��� ������

� ������� ������ 1.6.0_rc0 �� ��������� 19 �����; �������� CHANGELOG, ����� ������ ����� ��������� ����������.

�������, ����� �� �������, � ��������� ������

������� �������� ����� ��������������, ��������� ������� ���� ����� ���� ���������! RC1 ����� ����� ��������� ����� ����������, �������� ��������, � �� ������ ����� ��������� ������ 1.6.0 � ������ ������.


translated by vectoroc