2

好的,首先,我不打算寻求一种ObjectString.

但我面临这样的问题:

String.prototype.foo = function() {
    return this;
};

var rawString = "abcde";

var fooString = "abcde".foo();

console.log(typeof(rawString) + ': ', rawString);
console.log(typeof(fooString) + ': ', fooString);

或者你喜欢的jsfiddle

另外,附上截图:

Javascript 中的怪事。


如您所见,我在原型方法中几乎什么都没做foo,我只是return this

但结果typeof完全不同

为什么是这样?我怎样才能返回abcde而不是返回{0: "a"...}

谢谢!

4

1 回答 1

5

this引用,所以你需要像这样String Object返回它

return this.toString();

反过来,它创建原始字符串版本并返回它。

于 2012-08-18T17:02:24.093 回答