2

ここに私の質問を説明するためのスニペットがあります:

+function(str) {
  return str.replace(/^[a-z]|\s[a-z]/g,
            Function.call.bind(String.prototype.toUpperCase));
}('foo bar baz.');  //Returns Foo Bar Baz.

Function.call動作しますが、String.toUpperCase動作しません。代わりに、 と書かなければなりませんString.prototype.toUpperCase

4

1 に答える 1

8

Function()コンストラクター自体が関数です。したがって、他の関数と同じプロトタイプ オブジェクトから継承します。

のインスタンスはString()プロトタイプから継承されますが、String()コンストラクターはのインスタンスではありませんString()。それも関数です。

于 2016-03-09T15:40:18.377 に答える