js 多态

Ext 中开发 button 按钮事件时(删除表格中的一条记录),有一部分是与本地模块有关又不能通过参数(被删除数据的主键值)

为了实现删除事件通用,我们可以通过参数传递;多态;全局变量。

参数传递不允许

全局变量麻烦

只有通过多态实现

 

User.getBtnDelete= function (urlDelete,store) {

       var btnDelete=Create.createBtnDelete();

       btnDelete.setHandler( function () {      //alert('urlDelete='+urlDelete)

           var o= new Handler.deleteHanlder(User.grid,urlDelete,store);

           o.method();          //Handler.deleteHanlder(User.grid,urlDelete,store);

       } )

       return btnDelete;

    }

 

    Create.createBtnDelete= function () {

       var btnDelete= new Ext.Button( {

            id: 'btnDelete' ,

            text: ' 删除记录 ' ,

            iconCls: 'form-delete'

    } )

    return btnDelete;

    }

 

    Handler.deleteHanlder= function (grid,urlDelete,store) {

       var method = this .method;   

        this .method = function () {

            var ids=method.call( this );           //alert(ids)

             if (ids)

            deleteAction(ids,urlDelete,store);

        }

    }

    deleteAction = function (ids, url,store)

    {

       Ext.Msg.confirm( ' 信息 ' , ' 确定要删除所选项吗 ?' , function (btn)

       {

           if (btn == 'yes' )

           {

              Ext.Ajax.request( {

                  url : url,

                  success : function ()

                  {

                     Handler.reload(store);

                     //pagingToolbar.setNotificationMessage(" 记录删除成功 ");

                  } ,

                  params : {

                     ids : ids

                  }

              } );

           }

       } );

    }

 

 

为了演示多态我从网上转一个例子

 

function parentClass1() {

    this .method = function () {

        alert( "parentClass1 method" );

        return 'test' ;

    }

}

subClass1.prototype = new parentClass1();

function subClass1() {

    var method = this .method;   

    this .method = function () {

        var t=method.call( this );

        alert( 't=' +t)

        alert( "subClass1 method" );

    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值