<!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>
<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>
if (typeof(funcName) == "function)) {
funcName();
}