Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JavaScript Классическое наследование (https://javascript.ru/forum/misc/4652-javascript-klassicheskoe-nasledovanie.html)

Kolyaj 11.08.2009 12:09

Цитата:

Сообщение от zzz
Да но там ещё есть оператор else получается он некогда не сработает?

Ну уж не знаю, это не мой код, а Дугласа наше все Крокфорда :)

Riim 11.08.2009 12:11

Цитата:

Сообщение от zzz
Ну давайте тягатся с создателми языка. И решать что там лишнее а что нет

this ссылается на экземпляр дочернего класса, а не на window. В экземпляре дочернего класса метод Array не определялся.

zzz 11.08.2009 12:14

Зайдя на сайт Крокфорда я нашёл такой код
Function.method('inherits', function (parent) {
    var d = {}, p = (this.prototype = new parent());
    this.method('uber', function uber(name) {
        if (!(name in d)) {
            d[name] = 0;
        }        
        var f, r, t = d[name], v = parent.prototype;
        if (t) {
            while (t) {
                v = v.constructor.prototype;
                t -= 1;
            }
            f = v[name];
        } else {
            f = p[name];
            if (f == this[name]) {
                f = v[name];
            }
        }
        d[name] += 1;
        r = f.apply(this, Array.prototype.slice.apply(arguments, [1]));
        d[name] -= 1;
        return r;
    });
    return this;
});

А тот код я взял не из книги Крокфорда а из книги Джона Рейсига может он там курнул и решил его подкоректировать. Как вам этот код?

Riim 11.08.2009 12:20

Цитата:

Сообщение от zzz
Как вам этот код?

Так лучше.

zzz 11.08.2009 12:22

Не знаю бывало с вами такое вроде смутно понимаю как это работает. Как будто ответ где-то рядом но найти не могу.
может постваите комменты к коду мне в помощь?

zzz 11.08.2009 12:55

Апну тему а то хз то что я сообщение отредактировал отобразилось мож вы думаете что новых сообщений нету. Повторюсь можете к этому коду комменты на русском поставить объясняющие?

Riim 11.08.2009 13:44

Цитата:

Сообщение от zzz
Зайдя на сайт Крокфорда я нашёл такой код

Дай ссылку на страницу где этот код.

zzz 11.08.2009 13:53

http://javascript.crockford.com/inheritance.html

Riim 11.08.2009 14:04

Цитата:


I have been writing JavaScript for 8 years now, and I have never once found need to use an uber function. The super idea is fairly important in the classical pattern, but it appears to be unnecessary in the prototypal and functional patterns. I now see my early attempts to support the classical model in JavaScript as a mistake.

Я плохо понимаю английский, но вроде он признался, что все это ошибка.

zzz 11.08.2009 14:13

И всё таки мне интересно как работает этот код моно коменты к нему?


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