2017-06-30 2 views
0
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>latihan 2 Objek</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 

    </head> 
    <body> 
     <script type="text/javascript"> 
     function timeObjc(hour,minute,second){ 
       this.hour= hour; 
       this.minute = minute; 
       this.second= second;  
       this.setTime= function(whathour,whatminute,whatscnd){ 
            this.hour=whathour; 
            this.minute =whatminute; 
            this.second =whatscnd; 
           }; 
       this.runTime = function(){return this.hour+":"+this.minute+":"+this.second}; 
      } 
      timeObjc.setTime(10,22,36); 
      timeObjc.runTime(); 

     </script> 
    </body> 
</html> 

ich möchte die Zeit manuell außerhalb der Funktion setzen und sie mit der Laufzeit functio drucken, aber es Fehler halten, dass der „setTime ist keine Funktion“ .. wäre ich dankbar zu wissen, wht ich bin fehlt und warum passiert es. danke im vorausWie könnte ich Setter und Getter auf Javascript-Objekt zugreifen?

+0

Sie benötigen einen neuen timeObjc und weisen Sie das Objekt einer Variablen zu erstellen. var newTimeObjc = new timeObjc(); newTimeObjc.setTime (10,22,36); – codemax

+0

Sie versuchen, statische Konstruktion zu verwenden, ohne seine Syntax zu verwenden. Ihre Syntax ist eine Konstruktorfunktion, die Sie dann instanziieren müssen. Um einen statischen Kontext zu verwenden, müssen Sie die memeber Funktionen außerhalb der "class" -Funktion hinzufügen, indem Sie ihren Namen verwenden (was ein bisschen komisch ist) – Kaddath

+0

@Kaddath danke, dass es behoben wurde, aber wie wenn ich mehrere Zeitmodell (24 und 12) durch das Argument der Laufzeitfunktion? –

Antwort

0

Sie haben Ihre timeObjc noch nicht initialisiert. Und Sie versuchen, setTime als statische Methode auszuführen, was nicht der Fall ist.

Sie müssen zuerst das Objekt initialisieren und dann seine setTime Funktion ausführen.

function timeObjc(hour,minute,second){ 
    this.hour= hour; 
    this.minute = minute; 
    this.second= second;  
    this.setTime= function(whathour,whatminute,whatscnd){ 
         this.hour=whathour; 
         this.minute =whatminute; 
         this.second =whatscnd; 
        }; 
    this.runTime = function(){return this.hour+":"+this.minute+":"+this.second}; 
} 
var obj = timeObj(1,1,1) 
obj.setTime(10,22,36); 
obj.runTime(); 
+0

danke es behoben, aber wie wenn ich mehrere Zeitmodell (24 und 12) durch das Argument der Laufzeitfunktion machen möchte? –

+0

Sie könnten der Funktion 'runTime' einen Parameter hinzufügen. 'this.runTime = Funktion (Format) {Format = Format || 24; if (format === 24) {...} else {...}} 'Macht das Sinn? – shotor

+0

sollte es sich ändern das Stundenformat zwischen 12 und 24 Stunden hängt davon ab, was wir wählen .. zB wenn ich 12:20:33 im 24-Stunden-Format drucken möchte und ich die Laufzeitfunktion nenne und der Parameter 24 ist, sollte es automatisch sein Ändern der Stunde zu sein 00:20:33 .. irgendeine Idee? –

0

Erstellen Sie ein neues Objekt mit dem Schlüsselwort new.

wie var timeObject = new timeObjc(11, 22, 33) dann timeObjc.setTime(2,3,4)