Можешь объяснить назначение и функциональность getter и setter методов в JavaScript, включая то, как они обеспечивают инкапсуляцию свойств и валидацию данных? — ДейлиПреп