Экземпляры в ES6

101
21 октября 2019, 06:40

Назрел глупый вопрос, не могу сообразить как загуглить, поэтому пришел за помощью :)

Есть следующий код:

//-- foo.js
class Foo {
    constructor(props) {
        this.name = 'foo';
    }
}
const foo = new Foo();
export default foo;


// bar.js
import foo from 'foo.js';
class Bar {
    constructor() {
        this.foo = foo;
    }
}
export default Bar;


// bom.js
import foo from 'foo.js';
class Bom {
    constructor() {
        this.foo = foo;
    }
}
export default Bom;


//main.js
import Bom from 'bom.js';
import Bar from 'bar.js';
const Bom = new Bom();
const Bar = new Bar();

Вопрос в следующем, foo в Bar и Bom это по сути два разных обьекта или одинаковые? Я имею ввиду, что обьявления new Foo два раза выполнится или один раз?

Answer 1

Инициализация import выполняется только один раз.

Так как экспортируется уже созданный объект - именно этот объект и будет использован во всех местах.

READ ALSO
Эффект затемнения css [закрыт]

Эффект затемнения css [закрыт]

Как сделать такой эффект затемнения слайдера как здесь

102
Как удалить пару ключ-значение, в зависимости от типа значения с помощью for in?

Как удалить пару ключ-значение, в зависимости от типа значения с помощью for in?

нужно удалить свойство если его значение число, или строка, в зависимости от условия

123
Контекст вызова.Не видит массив [дубликат]

Контекст вызова.Не видит массив [дубликат]

На данный вопрос уже ответили:

135
Как добавить третий зависимый select

Как добавить третий зависимый select

Есть 2 селектора со странами и городами, как добавить третий в котором будут районы, что бы при выборе города, появлялся третий select с выбором...

147