functions
1396 ワード
[size=medium]Technicaly speaking,the function statement is not a statement.Sttements cause dynamic behavior in a
JavaScript program,while function definitions describe the static structure of a program.Sttements are
executed at runtime、but functions are defined when JavaScript code is parsed、or compled、before it is
actually run.When the JavaScript parser encounters a function definition,it parses and stores(without)
executing)the statements that coprise the body of the function.The n it defines a property(in the call)
object if the function definition is neted in another function;other wise、in the global oject)with the
same name as the function to hold the function.
The fact that function definitions occur at parse time rather than at runtime causes some surprising
effects.Consinder the follwing code:
Fortunate,these situations dot arse very oten.[/size]
JavaScript program,while function definitions describe the static structure of a program.Sttements are
executed at runtime、but functions are defined when JavaScript code is parsed、or compled、before it is
actually run.When the JavaScript parser encounters a function definition,it parses and stores(without)
executing)the statements that coprise the body of the function.The n it defines a property(in the call)
object if the function definition is neted in another function;other wise、in the global oject)with the
same name as the function to hold the function.
The fact that function definitions occur at parse time rather than at runtime causes some surprising
effects.Consinder the follwing code:
alert(f(4)); // Displays 16. f( ) can be called before it is defined.
var f = 0; // This statement overwrites the property f.
function f(x) { // This "statement" defines the function f before either
return x*x; // of the lines above are executed.
}
alert(f); // Displays 0. f( ) has been overwritten by the variable f.
The unusual result occur because function definition occurs at a different time than variable definition.Fortunate,these situations dot arse very oten.[/size]