Languages such as JavaScript have pushed much function from compile time to run time. If you take the JavaScript object as the equivalent of a C struct, in the sense that it holds several named values within, then you can in general tell neither the field names nor types of such values except as the program runs. There is no analog to what the C compiler learns from a declaration such as typedef struct{float a; int b;} px;. Such information is at best a fleeting plan in the head of the JavaScript programmer. Beyond that it is an emergent pattern to be discovered by someone studying the program.