В JS OOP принято называть экземпляр класса this
, поэтому семантически некорректно для объектов child
ссылаться на родительский объект как this
.Это также затрудняет работу с таким объектом, как child
, который не получает желаемого контекста, как лексический this
(как это делает child3
).
child
объект, вероятно, должен быть классом, которыйвнедряются с родительским экземпляром как зависимость.
module.exports = class Child(parent) {
constructor(parent) {
this.parent = parent;
}
getSettings() {
return this.parent.name === 'foobar'
}
}
var Child = require('./child.js')
function Base(){
this.name = 'foobar'
this.child = new Child(this);
...
}