A class instance or class definition which contains a property. If a class instance is passed the property is treated as an instance attribute. If a class constructor is passed the property is treated as a static attribute.
The property name
The class that defines the property
Search up the prototype chain and return the class that defines the given property.