Wenn ich den String-Konstruktor verwende ich frage mich immer, wie es gemacht wird. Es gibt die Zeichenfolge, die Sie als Parameter angegeben, obwohl es mit dem "neuen" Operator wie eingerichtet ist :Konstruktor Funktion Rückkehr ist anders als "[Object object]"
var str = new String("Hello World")
//str == "Hello World"
Wenn ich einen Konstruktor machen und ich es ein Rückgabewert geben ihm ein Objekt zurückgibt, wenn instanziiert:
function CreateString(st) {
return ''+st
}
var MyString = new CreateString("Hello there!")
//MyString == "[Object object]"
Wie kann ich einen Konstruktor erstellen, die einen anderen Wert als [Object-Objekt] liefert ?
Update: Ich versuche, einen Konstruktor Funktion zu erstellen, die beide Eigenschaften und Wert sich wie hat:
function MyConstructor() {
this.myMethod = function() {
return 73
}
return 25
}
/*I want MyConstructor to have the value 25 and the myMethod method */
alert(MyConstructor()) // to be 25
alert(MyConstructor().myMethod()) //to be 73
Es gibt sehr, sehr wenige Gründe String-Instanzen zu erstellen. – Pointy
Was versuchst du zu tun? Erstellen Sie eine neue "Klasse" oder erstellen Sie einfach etwas anderes als ein Objekt? – Shilly