封装事件委托

// 封装事件委托

var oul = document.querySelector("ul");
var ali = document.querySelectorAll("li");
var ap = document.querySelectorAll("p");

// oul.onclick = entrust(ali);

oul.addEventListener("click",entrust(ali,function(){
    console.log(this);
}));
oul.addEventListener("click",entrust(ap,function(){
    console.log(this);
}));

function entrust(achild,cb){
    return function(e){
        for(var i=0;i<achild.length;i++){
            if(achild[i] === e.target){
                cb.bind(e.target)();
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C# 中,可以使用委托来封装方法,使其可以像对象一样进行传递和操作。委托可以看作是函数指针,它包含了对一个或多个方法的引用,可以用来调用这些方法。 以下是一个示例,演示如何使用委托封装方法: ```csharp class Program { delegate void MyDelegate(string message); static void Main(string[] args) { // 创建委托实例并绑定方法 MyDelegate myDelegate = new MyDelegate(PrintMessage); // 调用委托实例,实际上是调用委托所绑定的方法 myDelegate("Hello, world!"); } static void PrintMessage(string message) { Console.WriteLine(message); } } ``` 在上面的示例中,我们定义了一个委托类型 `MyDelegate`,它接受一个字符串参数并返回 `void`。我们创建了一个委托实例 `myDelegate` 并将其绑定到 `PrintMessage` 方法上,然后调用 `myDelegate` 实例,实际上是调用了 `PrintMessage` 方法。 需要注意的是,委托可以绑定一个或多个方法,可以通过 `+` 操作符将多个方法合并成一个委托。在调用委托时,会按照绑定的顺序依次调用每个方法。 以下是一个示例,演示如何将多个方法绑定到同一个委托上: ```csharp class Program { delegate void MyDelegate(string message); static void Main(string[] args) { // 创建委托实例并绑定多个方法 MyDelegate myDelegate = new MyDelegate(PrintMessage); myDelegate += PrintMessageInUpperCase; // 调用委托实例,会依次调用绑定的两个方法 myDelegate("Hello, world!"); } static void PrintMessage(string message) { Console.WriteLine(message); } static void PrintMessageInUpperCase(string message) { Console.WriteLine(message.ToUpper()); } } ``` 在上面的示例中,我们将两个方法 `PrintMessage` 和 `PrintMessageInUpperCase` 绑定到同一个委托实例 `myDelegate` 上,并在调用 `myDelegate` 实例时,会依次调用这两个方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值