An Activation object is the object used to hold the properties that describe the environment and scope of an executing function. It is on this object that function arguments for example, are stored. By definition, to ACTIVATE something is to cause that thing to act or FUNCTION. So when you hear 'Activation object', think 'FUNCTION' object, or better yet, the root object that is LOCAL to a function (i.e., the FUNCTION LOCAL OBJECT).
With regards to the Variable object, an Activation object is more or less a concrete instance of a Variable object, which is itself (referring to the Variable object here) an ABSTRACT object type. As stated here...
The term ‘Variable object' is a general or abstract term used to refer to any object that holds the properties that describe the environment and scope of the currently executing context.
Hence, within the environment and scope of the global execution context (i.e., when outside of a function), the Global object is the Variable object. In the browser, because the global or outermost executing environment is the browser WINDOW, it is the window
object that ends up being used as the Variable object. This is why variables declared with the var
keyword outside of functions end up on the window
object.
In the scope of a function, however, it is the Activation object (i.e., the function local object) that is the variable object because it is this object that is used to store the properties that describe the scope of an executing function.