自定義事件方法

2021-08-28 13:48:36 字數 2181 閱讀 9969

前言

物件自定義事件

1、定義

var event =

//事件名不存在

this

[eventname]

=this

[eventname]

||new

array()

;this

[eventname]

.push

(callback);}

, emit:

function

(eventname));}}}

on:繫結事件

emit:觸發繫結後的事件

2、繫結事件

//這裡定義方法

event.on(

'test1'

,function

(result)

)event.on(

'test2'

,function()

)

3、觸發事件

event.

emit

('test1'

,'hello world'

)event.

emit

('test2'

)

4、反饋

5、引用

如果我需要別的物件也想使用自定義事件功能,再寫一遍方法肯定不符合**間接復用的要求,所以這裡會用到乙個東西

object.assign()方法用於將所有可列舉屬性的值從乙個或多個源物件複製到目標物件。它將返回目標物件

var person =

object.

assign

(person, event)

;person.on(

'call'

,function()

);//執行

person.

emit

('call'

)// 小明

建構函式自定義方法

1、定義

這裡繫結事件就放在建構函式中了,不能像物件那樣單獨出來繫結

const

event

=function()

//繫結事件

this.on

('test1'

,function()

)}//使用原型鏈定義繫結和觸發函式

//自定義繫結事件

event.prototype.on=

function

(eventname, callback)

//事件名不存在

this

.handler[eventname]

=this

.handler[eventname]

||new

array()

;this

.handler[eventname]

.push

(callback);}

//自定義觸發事件

event.prototype.

emit

=function

(eventname));

}}//繫結觸發事件

//觸發繫結事件

event.prototype.

test1

=function()

2、觸發事件

var events =

newevent()

events.

test1()

//小明

在這裡我們發現:建構函式相對於物件需要額外包一層方法來觸發自定義函式,好處是可以不必暴露其他用不到的自定義函式。

自定義事件

public event eventhandleropenprogress private void onopenprogress progresseventargs e if openprogress null openprogress this,e public class progressev...

自定義事件

簡單的自定義事件 首先定義乙個類來監聽客戶端事件,這裡我們監聽鍵盤的輸入。定義乙個委託。public delegate void userrequest object sender,eventargs e 前面的object用來傳遞事件的發生者,後面的eventargs用來傳遞事件的細節,現在暫時沒...

js自定義事件和jQuery自定義事件

1.簡述 js自定義事件是用來擴充套件dom元素的行為的,可以讓dom元素監聽自定義事件,並手動觸發,更加靈活地實現一些操作。jquery自定義事件使用場景更加廣泛一些,不僅限於dom監聽自定義事件,可以任意自定義事件並隨時觸發。用於實現觀察者模式,為大型專案解耦非常方便。2.js自定義事件,js可...