JavaScript has Proxy Objects that were introduced between 2012 and 2016 depending on the browser. They are like enhanced getter and setter traps that you can define and control for any object.
They can be useful for protecting and sealing object properties, for handling missing or misnamed properties and for doing validation on data.
Code from video:
https://gist.github.com/prof3ssorSt3v3/9d8223695082023b54aac70319310320
MDN Proxy reference:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy