日期:2014-05-16 浏览次数:20363 次
函数需要先定义,后使用。 这基本上所有编程语言的一条铁的定律。
一般状况下, 我们需要调用一个JavaScript 函数, 基本的状况都是先定义, 然后再调用。 看一个例子
<!--by oscar999 2013-1-16--> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Say Hello</title> </head> <body> <script> //define function function sayHello() { alert("hello"); } //call function sayHello(); </script> </body> </html>
但是如果不需要显示调用函数, 让这个函数在定义的时候就执行的话, 该如何写才可以呢?
function sayHello() { alert("hello"); }();
===》 你可能又会想, 如果我在大括号中传入参数是否就会解析成表达式了呢?
function sayHello() { alert("hello"); }(1);的确, 错误是没有了。 但是以上的写法等同于以下写法的效果
function sayHello() { alert("hello"); }; (1);这两句完全没有关系, 函数还是不会执行
所以, 只要将大括号将代码(包括函数部分和在后面加上一对大括号)全部括起来就可以了。
(function sayHello() { alert("hello"); }());
(function sayHello() { alert("hello"); })();
但是目前很多比较好的js library 使用的都是第二种方式。
比如: web 图形绘制的: git , draw2d ,....