SORU
28 ŞUBAT 2009, CUMARTESİ


Nasıl JavaScript soyut temel sınıf oluşturabilirim?

Olası soyut temel sınıf simüle etmek için JavaScript mi? Bunu yapmak için en zarif yolu nedir?

Diyelim ki, gibi bir şey yapmak istiyorum: -

var cat = new Animal('cat');
var dog = new Animal('dog');

cat.say();
dog.say();

Çıkış: '', '' . miyav hav

CEVAP
19 Ocak 2014, Pazar


Soyut bir sınıf oluşturmak için basit bir yoludur bu

/**
 @constructor
 @abstract
 */
var Animal = function() {
    if (this.constructor === Animal) {
      throw new Error("Can't instantiate abstract class!");
    }
    // Animal initialization...
};

/**
 @abstract
 */
Animal.prototype.say = function() {
    throw new Error("Abstract method!");
}

7 ** "Sınıf" ve say soyut yöntem.

Bir örnek oluşturma hatası atar:

new Animal(); // throws

Bu nasıl bir "miras" ile

var Cat = function() {
    Animal.apply(this, arguments);
    // Cat initialization...
};
Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;

Cat.prototype.say = function() {
    console.log('meow');
}

Dog buna benziyor.

Ve bu senaryo nasıl sonuçlanacağını

var cat = new Cat();
var dog = new Dog();

cat.say();
dog.say();

Keman here (bak konsol çıkış).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • majesticdubstep

    majesticdubs

    3 Kasım 2011
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007