/ / Variable in Array () ist undefiniert - Javascript, Padleft

Variable innerhalb von Array () ist nicht definiert - Javascript, Padleft

Ich habe ein Problem mit einem undefinierten Variablenfehler. Dies ist mein Code:

window.sys.Bash = {};
window.sys.Bash.version = "";
window.sys.Bash.version.major = 0;
window.sys.Bash.version.minor = 1;
window.sys.Bash.version.build = 1;
window.sys.Bash.version.release = "beta";
window.sys.Bash.printing = false;
window.sys.Bash.queue = Array();
window.sys.Bash.span = bash;
window.sys.Bash.span.input = input;

window.sys.Bash.version = ""
+ window.sys.Bash.version.major + "."
+ window.sys.Bash.version.minor + "."
+ Array(2-window.sys.Bash.version.build.toString().length+1).join("0")
+ window.sys.Bash.version.build + "-"
+ window.sys.Bash.version.release + " "
+ "(x86_64-" + window.sys.platform + ")";

delete bash; delete input;

Meine Webkonsole sagt, dass window.sys.Bash.version.build in dieser Zeile nicht definiert ist:

    + Array(2-window.sys.Bash.version.build.toString().length+1).join("0")

Ich habe den Code aus kopiert HierIch weiß also nicht viel darüber, aber es sollte funktionieren, oder?

Antworten:

4 für die Antwort № 1

Du hast es definiert version als primitiv, nicht als Objekt. Versuche dies:

window.sys.Bash.version = {};
window.sys.Bash.version.major = 0;
window.sys.Bash.version.minor = 1;
window.sys.Bash.version.build = 1;

Dem Grundelement Eigenschaften hinzuzufügen ist kein Fehler, aber die Eigenschaften werden einem temporären Objekt hinzugefügt, das dann verloren geht. Im Grunde ist das passiert:

window.sys.Bash.version = "";
new String(window.sys.Bash.version).major = 0;
new String(window.sys.Bash.version).minor = 1;
new String(window.sys.Bash.version).build = 1;

Dies wird beschrieben Hier:

Sei O ToObject (Basis).

Was ist eigentlich das Gleiche wie Object(str), das ist eigentlich das Gleiche wie new String(str)