Взгляните на Io в http://www.iolanguage.com/ или Lisaac в: https://gna.org/projects/isaac / или Сам в: http://self.sourceforge.net/ или Sather (теперь absolutly забытый) или Eiffel http://www.eiffel.com
, Почему вот несколько причин. Io absolutly минималистический и даже не имеет "элементов потока управления" как syntacit объекты. Lisaad является продолжением Eiffel со многими упрощениями AFAIKT. Сам продолжение Smalltalk, и Io взял довольно много от Сам также. Основная вещь состоит в том, что различие между Классом и Объектом было брошено. Sather является anwer Eiffel с несколькими другими правилами и лучшей поддержкой функционального программирования (с самого начала).
И Eiffel определенно признак для языков OO со статическим контролем типов. Eiffel был первым языком с поддержкой Дизайна контракта, дженерики (иначе шаблоны) и один из лучших способов обработать наследование. Это было и является одним из более простых языков все еще. Я с моей стороны нашел лучшие библиотеки для Eiffel.....
Это - создатель, просто имеет одну проблему, он не принял другие вклады в поле OO.....
Отношения
На самом деле это не так уж и сложно. JQuery практически сам по себе поможет вам с помощью методов insertBefore и insertAfter.
function moveUp($item) {
$before = $item.prev();
$item.insertBefore($before);
}
function moveDown($item) {
$after = $item.next();
$item.insertAfter($after);
}
Вы можете использовать их как moveDown ($ ('# menuAbout')); и элемент menuAbout переместится вниз.
Если вы хотите расширить jQuery, чтобы включить эти методы, вы должны написать это так:
$.fn.moveUp = function() {
before = $(this).prev();
$(this).insertBefore(before);
}
$.fn.moveDown = function() {
after = $(this).next();
$(this).insertAfter(after);
}
и теперь вы можете вызывать такие функции, как $ ("# menuAbout"). moveDown ();
Нет собственных методов-прототипов, но вы можете легко создать один:
$.fn.moveDown = function() {
return this.each(function() {
var next = $(this).next();
if ( next.length ) {
$(next).after(this);
} else {
$(this).parent().append( this );
}
})
}
$('#menuAbout').moveDown().moveDown()
Здесь используется jQuery.prototype.after