这个问题有点迂腐。你事先得到了警告:)
我发现了一些东西,我想与你分享。让我们直截了当。
由于所有函数都应该具有原型属性,这是js中原型继承模型的中心,并且由于Function.prototype
本身就是一个函数,所以你希望看到一个原型对象上的prototype
属性,js中的所有函数都通过继承获取其方法和属性,但没有任何内容。
这个决定在这个特定函数上省略prototype
是否有逻辑解释,或者仅仅因为文体原因而被删除,因为Function.prototype.prototype
对某些人来说可能看起来很难看,或者{{1} prototype
构造函数上的prop就像缺少js中所有原型的 god 更好的术语,因此本身不能有Function
属性?
期待您的回答。
快乐编码:)
答案 0 :(得分:1)
即使您的浏览器报告"功能",prototypes are objects或null。
答案 1 :(得分:0)
“所有函数都应该具有原型属性”
这从来都不是真的,在ES6中更是如此:
Array.prototype.slice.hasOwnProperty('prototype') // false
let f = () => {}
f.hasOwnProperty('prototype') // false
let o = { m() {} }
o.m.hasOwnProperty('prototype') // false
class C { m() {} }
(new C).m.hasOwnProperty('prototype') // false
JavaScript区分函数和构造函数。