Еще JavaScript

ну раз все заговорили про JavaScript, я тоже добавлю два слова: Дуглас Крокфорд. это главный архитектор по JavaScript в Yahoo. он придумал JSON, но и без этого, имно, ему можно ставить памятник уже за один только вот этот кусок кода:

function object(o) {
function F() {}
F.prototype = o;
return new F();
}
здесь выложены видео лекций Крокфорда — очень рекомендую, особенно для начинающих:

YUI Theater

а тут его сайт с массой полезной информации и линков:

javascript.crockford.com

все очень достойно прочтения.
ну и раз уж я вклинился — еще пара ссылок:

Yahoo! UI Library (YUI) — рулит! кстати, с февраля Yahoo еще и хостит ее нашару.

Curried JavaScript functions — прикольно.

Browser Wars Episode II: Attack of the DOMs — еще одно видео с Крокфордом и чуваками из команд IE, Opera и Mozilla.

enjoy, как говорится.
а haskell не замайте. :-)

Підписуйтеся на Telegram-канал редакції DOU, щоб не пропустити найважливіші статті.

👍НравитсяПонравилось0
В избранноеВ избранном0
Подписаться на автора
LinkedIn



Підписуйтесь: Soundcloud | Google Podcast | YouTube


5 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.
Эмм, думал, что это автор поста ответил:

Принимает объект, делает его копию и возвращает

Спасибо за объяснение.

Никакое это не копирование, вообще не понятно для чего эта функция написана.

это не копирование, это наследование прототипированием. в данном случае, объект x является прототипом для y. поэтому, если атрибут y.a не определен явно, он будет взят из прототипа — точно так же, как в обычном наследовании происходит доступ к виртуальным функциям. почитай Крокфорда, у него все доступно описано.

Сами то пробовали этот пример использовать? В прототипе остается лежать ссылка на объект:

var x = {a: 'aaa', b: 'bbb'}, y = object(x);x.a = 'ccc';alert(y.a);

выдаст «ccc»Никакое это не копирование, вообще не понятно для чего эта функция написана.

А что конкретно приведённый код делает?

Принимает объект, делает его копию и возвращает:)

А что конкретно приведённый код делает?

Подписаться на комментарии