Вход Регистрация
Файл: framework/thirdparty/jquery-selector/src/jquery.class.js
Строк: 85
<?php
/**
 * Very basic Class utility. Based on base and jquery.class.
 * 
 * Class definition: var Foo = Base.extend({ init: function(){ Constructor }; method_name: function(){ Method } });
 *
 * Inheritance: var Bar = Foo.extend({ method_name: function(){ this._super(); } });
 * 
 * new-less Constructor: new Foo(arg) <-same as-> Foo(arg)
 */      
Base = (function(){
    
    var 
marker = {}, fnTest = /xyz/.test(function(){xyz;}) ? /b_superb/ : /.*/;

    
// The base Class implementation (does nothing)
    
Base = function(){};
 
    
Base.addMethod = function(namefunc) {
        var 
_super this._super;
        if (
_super && fnTest.test(func))     {
            
this.prototype[name] = function(){
                var 
tmp this._super;
                
this._super _super[name];
                try {
                    var 
ret func.apply(thisarguments);
                }
                finally {
                    
this._super tmp;
                }
                return 
ret;
            }
        }
        else 
this.prototype[name] = func;
    }
 
    
// Create a new Class that inherits from this class
    
Base.extend = function(prop) {
      
        
// The dummy class constructor
        
var Kls = function() {
            if (
arguments[0] === marker) return;
            
            if (
this instanceof Kls) {
                if (
this.initthis.init.apply(thisarguments);
            }
            else {
                var 
ret = new Kls(marker); if (ret.initret.init.apply(retarguments); return ret;
            }
        }
   
        
Kls.constructor Kls;
        
Kls.extend Base.extend;
        
Kls.addMethod Base.addMethod;
        
Kls._super this.prototype;
    
        
Kls.prototype = new this(marker);
    
        
// Copy the properties over onto the new prototype
        
for (var name in prop) {
            if (
typeof prop[name] == 'function'Kls.addMethod(nameprop[name]);
            else 
Kls.prototype[name] = prop;
        }
        
        return 
Kls;
    }; 

    return 
Base;
})();
?>
Онлайн: 0
Реклама