String-Objekt versus Literal - Modifizieren des Prototyps?
Ich frage mich, warum es so aussieht, als würde das Hinzufügen einer Methode zum Prototyp eines String-Literal funktionieren, das Hinzufügen einer Eigenschaft jedoch nicht? Ich habe mit Ideen in Bezug auf @ gespiediese Frag und haben den folgenden Code:
String.prototype._str_index1 = 0;
String.prototype._str_reset = function() {
this._str_index1 = 0;
};
String.prototype._str_substr = function(len) {
var ret = this.substr(this._str_index1, len);
this._str_index1 = this._str_index1 + len;
return ret;
};
var testString = new String('Loremipsumdolorsitamet,consectetur');
log(testString._str_substr(5));
log(testString._str_substr(4));
Dies funktioniert gut. Wenn ich aber die drittletzte Zeile ändere auf:
var testString = 'Loremipsumdolorsitamet,consectetur';
... es scheint, dass obwohl die Methode_str_substr
existiert und kann über das String-Literal aufgerufen werden, den Wert der Eigenschaft_str_index1
ist immer 0.
Was geht