JavaScript-Prototyp erweitert die Basisklasse und kann nicht auf Basisklasseneigenschaften / Methoden aus der Prototypklasse zugreifen

8

Ich habe eine JavaScript-Klasse TkpSlider erstellt, die von dieser w3schools-Seite inspiriert wurde. ( JSFiddle )

%Vor%

Ich habe dies erweitert, um einige Swipe-Fähigkeiten hinzuzufügen, die von dieser Seite inspiriert sind damit ich den Slider beim User Swipe bearbeiten kann. ( JSFiddle )

%Vor%

Ich habe den Code getrennt, damit ich später nicht mehr vom Basiscode und eventuellen Zusatzfunktionen verwirrt bin. Aber mit OOP muss ich erweitern, indem ich einen neuen Namen dafür erstelle TkpSwiper , aber ich möchte einen anderen Weg finden, denselben Namen zu verwenden TkpSlider .

Ich sah diesen Artikel und habe versucht, einen Prototyp zu verwenden, um TkpSlider in diesem JSFiddle (Snippet unten) zu erweitern. Das Problem ist, dass ich nicht auf die öffentlichen Methoden der Basisklasse von der Kindklasse zugreifen kann. Das Beispiel Javascript in dem Blog, den ich getestet habe, funktioniert aber, ich muss etwas mit meinem Code vermissen. Könnte jemand Einblick gewinnen? Danke.

%Vor% %Vor% %Vor%
    
Ardeus 02.02.2018, 12:17
quelle

1 Antwort

8

Problem 1: Sie geben nichts von der Prototyp-Funktion zurück. Sie müssen jede öffentliche Methode als Eigenschaften des Rückgabeobjekts zurückgeben.

%Vor%

Problem 2: Sie müssen Variablen innerhalb der init-Funktion setzen. Draußen bezieht sich diese Variable nicht auf TkpSlider.

%Vor%

Problem 3 Sie müssen die initSwiper () -Methode manuell aufrufen, um beim Erstellen des TkpSlider-Objekts Ihre Variablen initialisieren zu lassen.

%Vor%

Dann wird es funktionieren, wie Sie brauchen, und Sie können öffentliche Methoden aufrufen, wenn Sie brauchen.

%Vor%

Arbeits-Snippet:

%Vor% %Vor% %Vor%
  

Prototyp-Verwirrung: Was das ist das ?

%Vor%     
Munim Munna 06.02.2018, 18:27
quelle