我想知道为什么似乎在字符串字面量的原型中添加方法似乎有效,但添加属性则不行? 我正在研究与此问题有关的想法,并编写了以下代码:
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));
这个很好用。但是,如果我将倒数第三行改为:
var testString = 'Loremipsumdolorsitamet,consectetur';
看起来尽管方法_str_substr
存在且可以在字符串文字上调用,但属性_str_index1
的值始终为0。
怎么回事?