DEV Community

Slick3gz
Slick3gz

Posted on

JS Data Privacy

Hello again đź‘‹

I’ve been grinding in the lab trying get a deeper understanding of Javascript. I’m currently working on a tiny project utilizing some ES6 features. I noticed while creating some classes that instance variables don’t seem to have much protection from outside interference. I would like to hear from other devs on how they go about protecting their instance data in production or if that’s even a valid issue?

Top comments (3)

Collapse
 
avalander profile image
Avalander •

I don't really use classes with Javascript. You can encapsulate private data with closures though.

const Unicorn = name => {
  let level = 0

  return {
    name() {
      return name
    },
    level() {
      return level
    },
    levelUp() {
      level += 1
      return this
    },
  }
}

const twilight = Unicorn('Twilight Sparkle')

twilight.name()    // 'Twilght Sparkle'
twilight.level()   // 0
twilight.levelUp()
twilight.level()   // 1
Collapse
 
slick3gz_ profile image
Slick3gz •

Earlier in Jonas Schmedtmann’s JS course he explained that IIFEs and closures could let you pick what you would like to expose to the public. I also read a post by Eric Elliot discussing classes vs function constructors vs factory functions, in which he advocated for the use of factory functions over the other two options for future flexibility. Just wondering if this is how most devs approach this “problem”.

 
slick3gz_ profile image
Slick3gz •

Do you use TypeScript by itself or use it mainly for a framework? I recently picked up a course on Udemy from Stephen Grider that teaches using TypeScript with Angular.

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

đź‘‹ Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay