Здесь вы имеете дело с двумя различными объектами:
функция: doSomething
объект: doSomeInstancing
Оба являются объектами, и оба могут иметь свойства.doSomeInstancing
- это объект, возвращаемый функцией при вызове new doSomething()
, и это то, на что this
ссылается в теле функции.Добавление свойств к этому объекту не влияет на другой объект, функцию doSomething
.Обратное тоже верно.
Если вы пытаетесь наследовать свойство, вы на самом деле ищете третий объект: doSomething.prototype
.Это свойство функций, которое указывает на объект, с которым будут связаны экземпляры.doSomeInstancing
будет наследоваться от этого объекта в цепочке прототипов.Например:
function doSomething() {
this.testProp = 'testProp';
}
doSomething.prototype.testProp1 = "testProp1 value"
let p = new doSomething()
// p's parent in the protoype chain is doSomething.prototype
console.log(Object.getPrototypeOf(p) === doSomething.prototype)
console.log(p.testProp)
console.log(p.testProp1)