Dynamic languages vs. static languages.
In Java script you can do things like:
var myVariable = 33;
myVariable = CallBack;
In this example I create a variable named myVariable and assign the integer value 33 to it. Then I assign the value or location of the function CallBack to the variable myVariable.
I then invoke the function by treating it as a function i.e. myVariable().
This is pretty cool and very powerful. However, the problem comes when you start looking at a large complex code base. Since there are no types you can’t easily determine the type of a variable. What the InfoPath team has done is used a naming convention for the variables. This allows us to track the object back to a source file.
However, since this is still a non typed language and there is no easy way to use the right click style go to definition found in Visual Studio and other tools.