C# / VB.NET have the concept of a delegate which enables [first-class functions](https://en.wikipedia.org/wiki/First-class_function): var l = new List<int>(); Func<string> fn = l.ToString; This is not the method itself, but rather an object pointing to the method. Thus, there can be multiple objects that point to the same method + target: Func<string> fn2 = l.ToString; Object.ReferenceEquals(fn,fn2); //False (although comparing the two objects with `==` will return `True`.) Javascript does not require delegates, because a function is itself an object which can be passed around. Therefore any two references to the function will refer to the same object: var arr = []; var fn = arr.toString; var fn2 = arr.toString; console.log(fn === fn2); //true What differences (aside from delegates being able to point to multiple functions) are there between the two mechanisms -- "function as object" and "pointer-to-function as object"?