回调函数,用户定义的排序规则

<!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>
    <title>范例6-3</title>
</head>
<body>
<script language="javascript">
    function SortNumber( obj, func )                // 定义通用排序函数
    {
        // 参数验证,如果第一个参数不是数组或第二个参数不是函数则抛出异常
        if( !(obj instanceof Array) || !(func instanceof Function))
        {
            var e = new Error();                    // 生成错误信息
            e.number = 100000;                      // 定义错误号
            e.message = "参数无效";                 // 错误描述
            throw e;                                // 抛出异常
        }
        for( n in obj )                             // 开始排序
        {
            for( m in obj )
            {
                if( func( obj[n], obj[m] ) )        // 使用回调函数排序,规则由用户设定
                {
                    var tmp = obj[n];
                    obj[n] = obj[m];
                    obj[m] = tmp;
                }
            }
        }
        return obj;                                 // 返回排序后的数组
    }
    function greatThan( arg1, arg2 )                // 回调函数,用户定义的排序规则
    {
        return arg1 > arg2;                         // 规则:从大到小
    }
    try
    {
        var numAry = new Array( 5,8,6,32,1,45,7,25 );   // 生成一数组
        document.write("<li>排序前:"+numAry);          // 输出排序前的数据
        SortNumber( numAry, greatThan )                 // 调用排序函数
        document.write("<li>排序后:"+numAry);          // 输出排序后的数组
    }
    catch(e)
    {
        alert( e.number+":"+e.message );               // 异常处理
    }
</script>
</body>
</html>
时间: 2024-10-26 02:49:24

回调函数,用户定义的排序规则的相关文章

C++ 回调函数的定义与用法

一回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢? 使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数. 而 那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作.至于如何定义回调函数,跟具体使用的 A

函数指针,回调函数的定义和使用

一.函数指针 定义:函数指针是指向函数的指针变量,即本质是一个指针变量. int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 指向函数的指针包含了函数的地址,可以通过它来调用函数.声明格式如下:  类型说明符 (*函数名)(参数)其实这里不能称为函数名,应该叫做指针的变量名.这个特殊的指针指向一个返回整型值的函数.指针的声明笔削和它指向函数的声明保持一致.指针名和指针运算符外面的括号改变了默认的运算符优先级.如果没有圆括

关于jQuery回调函数的定义及用法实例

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset=" utf-8"> 5 <meta name="author" content="http://www.jb51.net/" /> 6 <title>脚本之家</title> 7 <style type="text/css"> 8

函数的定义种类

<!--函数的定义--> <body><!--普通定义:--><script type="text/javascript">    function displaymessage(){        alert("您好!")    }</script><form>    <input type="button" value="点击我!" onclic

编写一个排序函数,实现数字排序。排序方法由客户函数实现,函数参数个数为两个,两个参数的关系作为排序后的元素间的关系。

<script>function SortNumber(obj,func) //定义通用排序函数{ //参数验证,如果第一个参数不是数组或第二个参数不是函数则抛出异常 if(!(obj instanceof Array) || !(func instanceof Function)) { var e = new Error(); //生成错误信息 e.number = 100000; //定义错误号 e.message = "参数无效"; //错误描述 throw e; /

SQL——用户定义函数

根据用户定义函数返回值的类型,可将用户定义函数分为如下三个类别: (1) 返回值为可更新表的函数 若用户定义函数包含单个 SELECT 语句且该语句可更新,则该函数返回的表也可更新,这样的函数称为内嵌表值函数. (2) 返回不可更新数据表的函数 若用户定义函数包含多个 SELECT 语句,则该函数返回的表不可更新.这样的函数称为多语句表值函数. (3) 返回标量值的函数 用户定义函数返回值为标量值,这样的函数称为标量函数. 用户定义函数不支持输出参数.用户定义函数不能修改全局数据库状态. 利用A

数据库排序规则的冲突(理解collate Chinese_PRC_CI_AS)

之前碰到了数据库排序规则冲突问题,即百度或者 Google 的老话题: " 无法解决 equal to 操作中' sql_latin1_general_cp1_ci_as '和' chinese_prc_ci_as '之间的排序规则冲突 " .一般的方法,是在创建临时表或表连接的时候加上规则校勘语句 COLLATE "规则名"解决,如: create table #example ( EXP_Name varchar (50) collate CHINESE_PRC

GTK入门学习:信号与回调函数

前面我们学习的GTK界面都是静态的,我们按下按钮它是没有响应的,如何让它有响应呢?接下来我们一起学习GTK的信号与回调函数. GTK采用了信号与回调函数来处理窗口外部传来的事件.消息或信号.当信号发生时,程序自动调用为信号连接的回调函数. 学习应用编程,我们会经常接触到"信号"这个名词.GTK中的"信号"实际上是一种软件中断."中断"在我们生活中经常遇到,譬如,我正在房间里打游戏,突然送快递的来了,把正在玩游戏的我给"中断"了

什么是回调函数

什么叫回调函数 (2012-08-02 10:37:43) 转载▼ 标签: 杂谈 分类: C 1 什么是回调 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步调用.同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用:回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口:异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口).