<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>函数的指针调用方式</title>
</head><body>
<script language="javascript">
function orderNum(numAry, func)    //**********定义通用排序函数***********************
{         //***********参数验证,如果第一个参数不是数组或第二个参数不是函数侧抛出异常**********************
if(!(numAry instanceof Array)||!(func instanceof Function))
{
var error = new Error();   //************生成错误信息*********************
error.number = 10000;      //*************定义错误号********************
error.message = "参数错误";     //*************错误描述********************
throw error;                   //*************抛出异常********************
}
for(i=0;i<numAry.length-1;i++)     //*************开始排序********************
{
for(j=i+1;j<numAry.length;j++)
{
if(func(numAry[i],numAry[j]))  //*************使用回调函数排序,规则由用户设定********************
{
var temp = numAry[i];
numAry[i] = numAry[j];
numAry[j] = temp;
}
}
}
return numAry;     //***********返回排序后的数据**********************
}


function bijiao(m,n)   //***********回调函数,用户定义的排序规则**********************
{
return (m<n);      //************规则:从小到大*********************
}

var aryNum = new Array(3,6,8,1,2,7,9);        //*********生成一数组************************
document.write("<li>排序前:"+aryNum+"</li>");  //*********输出排序前的数据******************
aryNum = orderNum(aryNum,bijiao);              //*********调用排序函数**********************
document.write("<li>排序后:"+aryNum+"</li>");  //*********输出排序后的数组******************

</script>
</body>
</html>