Because they are your own, user-defined properties. You can make them (mean) whatever you want them to mean. And they don't exist until you create them. They're like variables that reside inside the object itself.

Why use them ? Because the variables live with the object, and can be passed around with the object - no need for globals and extra params to functions.