Я пишу классы в модулях ES6, используя объектные литералы, и я хочу установить атрибуты объекта внутри функции. Теперь я знаю, что модули по умолчанию выполняются в строгом режиме, что делает использование this
безопасным или, по крайней мере, безопасным, но я не уверен, что foo()
изменяет объект, к которому я обращаюсь, в файле сценария 'parent' или просто локальный объект, существующий только в Controller.mjs
. Оба вызова функций имеют одинаковый эффект?
//Controller.mjs
const Controller = {
someAttr1: [],
someAttr2: true,
foo: function () {
this.someAttr1.push("some value");
Controller.someAttr1.push("some value");
}
};
//export Controller's interface...
//SomeOtherFile.mjs
import { Controller } from 'Controller.mjs'
Controller.foo();