function foo() {  

var obj = {  
    a: 2,
    foo: foo

Regardless of whether foo() is initially declared on obj, or is added as a reference later (as this snippet shows), in neither case is the function really "owned" or "contained" by the obj object.


the call-site uses the obj context to reference the function, so you could say that the obj object "owns" or "contains" the function reference at the time the function is called.

(You don't know JS - this & object prototypes)