In essence it allows you to control what happens when the property is gotten
In the example code you are tying to understand you have a private property mouseHover. This cannot be accessed outside the class it is defined. The author wanted a to make the mouseHover property accessible outside the class -- without allowing it to be overwritten -- in essence Read Only.
So the author exposed the private mouseHover property using the 'get' keyword on a new property onMouseHover. Using get the author can tell JavaScript what to do when the property is read. As you can see it just returns the backing property.
This gets compiled into the following JavaScript
Object.defineProperty(YourClass.prototype, "onMouseHover", {
get: function () {
return this.mouseHover;
},
enumerable: true,
configurable: true
});
To understand this better, look at the documentation for Object.defineProperty
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty