Я новичок в JS, и в одном из моих тестов я пытался выяснить, как работает следующий код с точки зрения наследования свойств.
function doSomething(){}
doSomething.prototype.foo = "bar"; //Add "foo" property to doSomething's prototype
let anInstance = new doSomething();
anInstance.prop = "value"; //Add "prop" property to object "anInstance"
doSomething.prop = "another value"; //Add "prop" property to "doSomething"
let anotherInstance = new doSomething();
console.log(doSomething.prop);
console.log(anInstance);
console.log(anotherInstance.prop);
Это вывод сценария вышев консоли:
another value
doSomething{prop: "value"}
prop: "value"
__proto__:
foo: "bar"
constructor: ƒ doSomething()
__proto__: Object
undefined
Как видите, печать свойства doSomething
prop
после добавления к нему возвращает ожидаемое another value
, но доступ к anotherInstance
'prop
возвращаетundefined
.
Разве это anotherInstance
не должно "наследовать" такое свойство prop
, поскольку оно определено в функции, из которой оно было создано?
Заранее спасибо.