JavaScript is an object oriented language, though it has some short cuts that allow programmers treat it otherwise. An object is complex data type that can hold any number of other pieces of data. And these other pieces of data can be variables, functions or other objects. Except that functions of an object are known as methods and variables known as properties. And the two are interchangable. You can assign a method to a property. That's why you need the parentheses to call a method. Pretty much all objects are properties of other objects, forming a tree structure not unlike the directory on your hard drive and with window objects as the roots. JavaScript also has some primitive data types, like arrays and strings but they get converted to Array and String objects as needed. Note the capitalization convention. Class names start with capital letters. Each particular String object is a member of the String class and it inherits methods of that class.