Javascript String Object V.S.只是字符串

时间:2012-08-18 16:54:36

标签: javascript prototype

好的,首先,我不会寻求将Object转换为String的方法。

但是我遇到了这样的问题:

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

var rawString = "abcde";

var fooString = "abcde".foo();

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

jsfiddle您更喜欢。

另外,附上了截图:

the strange thing in Javascript.


正如您所看到的,我在原型方法foo中几乎没有做任何事情,我只是return this

typeof的结果完全不同

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

谢谢!

1 个答案:

答案 0 :(得分:5)

this引用了String Object,因此您需要像

一样返回它
return this.toString();

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