Показано с 1 по 4 из 4

Тема: Как перевести скрипты в плагины

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #2

    По умолчанию

    Вызов функции из родительского класса
    Спойлер Спойлер:

    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);
       // и здесь ваш код
    };

    Последний раз редактировалось DK; 10.07.2016 в 15:46. Причина: Ошибка

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Как перевести скрипты в плагины