函数两种定义方法的区别

在看黑羽的大作《as3 殿堂之路的时候》,看到黑羽对as中的函数定义的两种方法做了一个比较。觉得很受用。那么它是不是也适用于as的兄弟语言js呢?做了个实验。详解如下:

在as/js中定义一个函数有两种方法。

方法1:
function funName()
{

}

方法2:
var funName = function()
{

}

这两种方法在一般的使用中是没有太大区别的。但还是会有所不同。

首先,方法1方式定义的函数,调用的语句可以写在函数定义之前,而方法2方式定义的函数,调用只能写在定义之后。

下面是一个小demo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
testA();
testB();
function testA()
{
    alert("a");
}
var testB = function()
{
    alert("b");
}
</script>
<body>
</body>
</html>

程序在成功调用testA之后,就报错了。FF下提示说testB函数未定义。如果把testB的调用放到testB的定义后面,则正常调用。

原文地址:https://www.cnblogs.com/cly84920/p/4427067.html