这里有一个片段来解释我的问题:
+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()
构造函数本身就是一个函数。因此,它继承自与任何其他函数相同的原型(prototype)对象。
String()
的实例继承自原型(prototype),但 String()
构造函数不是 String( )
。它也是一个函数。
关于Javascript:为什么我可以在不提及原型(prototype)的情况下访问 Function.prototype.call?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35896071/