Javascript 为什么这个属性没有为函数类定义,而是为同一类的实例定义?

Javascript 为什么这个属性没有为函数类定义,而是为同一类的实例定义?,javascript,Javascript,我将介绍以下示例,这些示例取自: 将生成以下输出: doSomeInstancing.prop: some value doSomeInstancing.foo: bar doSomething.prop: undefined doSomething.foo: undefined doSomething.prototype.prop: undefined doSomething.prototype.foo: bar 我不明白为什

我将介绍以下示例,这些示例取自:

将生成以下输出:

doSomeInstancing.prop:      some value
doSomeInstancing.foo:       bar
doSomething.prop:           undefined
doSomething.foo:            undefined
doSomething.prototype.prop: undefined
doSomething.prototype.foo:  bar

我不明白为什么doSomething.foo没有定义。foo被添加到doSomething的原型中,如果解释器在对象的实例中找不到它,是否应该在那里找到它?

prototype属性有点混乱。它不是指当前对象的内部原型,而是指当函数具有
prototype
属性时,实例将在函数上具有
.prototype
对象的内部原型

函数本身(此处,
doSomething
)不在
dosomeinstance
的原型链上的任何位置。这里是原型链:

<- here means: "has an internal prototype of"

doSomething <- Function.prototype <- Object.prototype
doSomeInstancing <- doSomething.prototype <- Object.prototype

不知道为什么大多数教程似乎都在掩盖这一点,除非它是这样拼写的,否则它是非常混乱的。我仍在思考这个概念,但你的答案比我发现的任何其他答案都更有意义。谢谢
<- here means: "has an internal prototype of"

doSomething <- Function.prototype <- Object.prototype
doSomeInstancing <- doSomething.prototype <- Object.prototype