[js] zabawa z obiektami/funkcjami

0

Mam takie male, glupie pytanie.
Nie moglem nigdzie znalezc przykladu i konkretnego opisu do tych funkcji.
Tzn chodzi mi o jakis ladny normalny opis/przyklad do czego tak naprawde to sie moze przydac, a nie jakies lakoniczne "oderwane od rzeczywistosci" kody :]

A mianowicie, chodzi mi o takie cos jak
Function.apply
czy tez inherit, implementowana roznie, przez roznych, ale sposob dzialania/wywolania podobny

Za wszelkie opisy czy linki do stron z tym opisanym bede wdzieczny

0

Problem chyba w tym, że to jest błędne koło. Apply i call zrobili po to żeby kombinować z dziedziczeniem a programiści kombinują z dziedziczeniem żeby sprawdzić jak ładnie działa apply i call. Przykład użycia:

  Object.prototype.inherit = function(supClass) {
    this.superClass = new supClass();
    this.base = function(name) {
      var args = Array.prototype.slice.call(arguments, 1);
      this.superClass[name].apply(this, args);
    }
    for (var property in this.superClass) {
      this[property] = this.superClass[property];       
    } 
  };

  function myClassA() {
    this.val = 'A';
    this.show = function(s) {
      alert(s + this.val);
    }
  }

  function myClassB() {
    this.inherit(myClassA);
    this.show = function() {
      this.superClass.show('this = superClass, wiec val = '); 
      this.base('show', 'this = obj, wiec val = ');
    }
  } 

  var obj = new myClassB();
  obj.val = 'B';
  obj.show();

Jest jeszcze jedna możliwość zastosowania tych funkcji. Dzięki nim można zlikwidować wadliwe działanie attachEvent w IE gdzie this nie wskazuje na obiekt, z którego została wywołana funkcja podana jako drugi argument funkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1