Javascript:为什么我可以在不提及原型的情况下访问Function.prototype.call?

Javascript: Why am I able to access Function.prototype.call without mentioning the prototype?

这里有一个片段来解释我的问题:

+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.

Function() 构造函数本身就是一个函数。因此,它继承自与任何其他函数相同的原型对象。

String() 的实例继承自原型,但 String() 构造函数 不是 String() 的实例。它也是一个函数。