All streams
Search
Write a publication
Pull to refresh
17
0
DevEx @DevEx

User

Send message
$(document).ready(function()........
это лишнее, т.к. GreaseMonkey запускает скрипт как только поступит событие DOMContentLoaded

wiki.greasespot.net/DOMContentLoaded
так с файлообмеников качать можно :)
всё инвайты закончились!
выслал кому смог, ждите приглашение от гугла.
кто просил всем выслал
кому инвайт? есть 20 штук
пишите своё мыло.
слабовато гироскоп раскручен, под конец колесо падает :)
спасибо, ещё инвайты bit.ly/qHCb9
на ногах тоже есть пальцы :)))
аргументируйте
поставил firebug 1.2.1 на FF 3.1b3pre (отключил проверку совместимости версии)
всё нормально отработало
а стена не деревянная случаем?
через железобетон не пройдёт
да, действительно баг:
            // super
            this.super = function (name) {
                return cls.super(this, name);
            }


идёт рекурсивный вызов, придётся убрать this.super и заменить на class.super

профиксил:
var Class = function(){};

Class.create = function(prop, cls_super){
    
    if (!cls_super){
        cls_super = Class;
    }
    
    var init = false;
    // new class
    var cls = function (){
        if (init) {
            // extend this
            this.extend = function (prop) {
                for (name in prop) {
                    this[name] = prop[name];
                }
                return this;
            }

            if (this.init) {
                this.init.apply(this, arguments);
            }
        }
    };

    cls.prototype = new cls_super();
    init = true;

    // extend class
    for (name in prop) {    
        cls.prototype[name] = prop[name];
    }

    cls.prototype.constructor = cls;

    // super
    cls.super = function(instance, name){
        var property = cls_super.prototype[name];
        if (property instanceof Function){
            return function () {return property.apply(instance, arguments)};
        } else {
            return property;
        }
    }

    // extend
    cls.extend = function(prop){
        init = false;
        var _cls = Class.create(prop, cls);
        init = true;
        return _cls;
    }
    
    return cls;
}



ваш код тогда будет выглядеть так:
var C1 = Class.create({ init: function() { alert("C1"); } });
var C2 = C1.extend({
 init: function() {
  alert("C2");
//  debugger;
  C2.super(this, 'init')();
 }
});

var C3 = C2.extend({ });
var C4 = C3.extend({
 init: function() {
  alert("C4");
  C4.super(this, 'init')();
 }
});

var obj = new C4();



вот думаю как сделать:
1) class.super(объект, имя_метода)
или
2) class.super(имя_метода, объект)

сейчас используется 1 вариант
внесу свои 5 копеек:
var Class = function(){};

Class.create = function(prop, cls_super){
    
    if (!cls_super){
        cls_super = Class;
    }
    
    var init = false;
    // new class
    var cls = function (){
        if (init) {
            // super
            this.super = function (name) {
                return this.constructor.super(this, name);
            }
            
            // extend this
            this.extend = function (prop) {
                for (name in prop) {
                    this[name] = prop[name];
                }
                return this;
            }

            if (this.init) {
                this.init.apply(this, arguments);
            }
        }
    };

    cls.prototype = new cls_super();
    init = true;

    // extend class
    for (name in prop) {    
        cls.prototype[name] = prop[name];
    }

    cls.prototype.constructor = cls;

    // super
    cls.super = function(instance, name){
        var property = cls_super.prototype[name];
        if (property instanceof Function){
            return function () {property.apply(instance, arguments)};
        } else {
            return property;
        }
    }

    // extend
    cls.extend = function(prop){
        init = false;
        var _cls = Class.create(prop, cls);
        init = true;
        return _cls;
    }
    
    return cls;
}


//
// end
//




вот пример использования:
var Animal = Class.create({init: function(kind){this.kind = kind;}})
var Dog = Animal.extend({
    init: function(name, kind) {
        this.super('init')(kind);
        this.name = name;
    }
});

var doggy = new Dog('Rex', 'wolf');
из условия 33212 - 2 будет считаться помехой т.к. за не следует 1
Написать программу, которая получив на входе произвольный список удалит из него все повторяющиеся элементы.

самый простой пример:

my_list = [1,2,3,4,1,2,6,9,2,3,8,4,5,76,2,5,6,7]
unique_list = list(set(my_list))
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 76]
спасибо за ссылки почитаю

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity