Вызов функции из родительского класса
Спойлер Спойлер:
Ruby
Спойлер Спойлер:Код:class ClassName def initialize super # именно эта функция end end
JS
Спойлер Спойлер:Код:function ClassName() { this.initialize.apply(this, arguments); } ClassName.prototype = Object.create(ClassName1.prototype); ClassName.prototype.constructor = ClassName; ClassName.prototype.initialize = function() { ClassName1.prototype.initialize.call(this); // именно эта функция };
Тоже самое, но с параметрами
Спойлер Спойлер:
Ruby
Спойлер Спойлер:Код:class ClassName def initialize(x, y) super(x, y) # именно эта функция end end
JS
Спойлер Спойлер:Код:function ClassName() { this.initialize.apply(this, arguments); } ClassName.prototype = Object.create(ClassName1.prototype); ClassName.prototype.constructor = ClassName; ClassName.prototype.initialize = function(x, y) { ClassName1.prototype.initialize.call(this, x, y); // именно эта функция };
Переменная класса
Спойлер Спойлер:
Ruby
Спойлер Спойлер:Код:class ClassName def initialize(x, y) self.x = x # используем self и . (точку), self - указатель на данный экземпляр (используется внутри класса) @x = x # переменная экземпляра класса @@x = x # переменная всех экземпляров класса end end
JS
Спойлер Спойлер:Код:function ClassName() { this.initialize.apply(this, arguments); } ClassName.prototype.initialize = function(x, y) { this.x = x; // используем this и . (точку), this - указатель на данный экземпляр (используется внутри класса), также используется, как переменная экземпляра класса ClassName.variable = x; // переменная всех экземпляров класса };
Alias функций (дополнение функций)
Спойлер Спойлер:
Ruby
Спойлер Спойлер:Код:class ClassName def initialize(x, y) x = x end end class ClassName alias new_initialize initialize # ключевое слово alias, затем новое название метода, затем название метода, который дополняем def initialize(x, y) new_initialize(x, y) # и здесь ваш код end end
JS
Спойлер Спойлер:Код:function ClassName() { this.initialize.apply(this, arguments); } ClassName.prototype.initialize = function(x, y) { this.x = x; }; var new_initialize = ClassName.prototype.initialize; // сохраняем старую функцию ClassName.prototype.initialize = function(x, y) { // вызываем сохраненную функцию new_initialize.call(this, x, y); // и здесь ваш код };
Социальные закладки