Во втором примере у вас все еще есть метод, прикрепленный к каждому экземпляру, который не идеален, если вы хотите повторно использовать этот метод на совместимом интерфейсе.Также он не очень хорошо работает со многими библиотеками FP js.
Чтобы со стороны было ясно, что это не функция конструктора, начните с нижнего регистра и добавьте префикс, например, например, create.
Сделать функции максимально чистыми и не смешивать логику композиции кода (составлять, карри) с бизнес-логикой.(Я говорю о обратном вызове, не имеющем ничего общего с toString)
Я добавляю экспорт, чтобы ясно показать, что необходимо экспортировать как минимум 2 функции.
export { nodeToString, createNode };
function nodeToString(node) {
return `${node.value}`;
}
function createNode(value, next = null) {
return {
value,
next
};
}
Это будет использоваться следующим образом
import { nodeToString, createNode } from "./x.js";
const node = createNode(`myvalue`);
const string = nodeToString(node);