2

ObjectOK、最初に、に変換する方法を探すつもりはありません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

また、スクリーンショットが添付されています:

Javascriptの奇妙なこと。


ご覧のとおり、プロトタイプメソッドではほとんど何もしませんでしfooreturn this

しかし、の結果typeofは完全に異なります

どうしてこれなの?どうすれabcdeば、tではなく単に戻ることができ{0: "a"...}ますか?

ありがとう!

4

1 に答える 1

5

thisを参照しているので、次のString Objectように返す必要があります

return this.toString();

次に、プリミティブ文字列バージョンを作成して返します。

于 2012-08-18T17:02:24.093 に答える