当我们对某一个元素绑定监听方法时,想传一个callback函数,即监听后的处理函数
我们可以用传一个函数的句柄(引用),然后调用这个句柄(引用)的call方法.即可达到目的
<
body
>
<
script
>
????
var
?callback?
=
?
function
(name?,?invoteTime)
????
{
????????alert(name?
+
?
"
|调用时间是:
"
?
+
?invoteTime);
????}
????
var
?TestObject?
=
?
function
()
????
{
????????
//
定义这个对象相应的element
????????
var
?e?
=
?
null
;
????????
this
.addClickListener?
=
?
function
(name?,?callback)
????????
{
????????????e.onclick?
=
?
function
()
????????????
{
????????????????
//
如果有参数,还可以传参数?,?call的第一个参数预留:arguments?, 这里面我们可以用null , ?从第二个开始
????????????????callback.call(
null
?,?name?,?
new
?Date());
????????????}
????????}
????????
var
?init?
=
?
function
()
????????
{
????????????
//
这里仅做个测试,?本应该按规范来写,?如:?e.id?=?'test';?e.style.width?=?'100px'
????????????e?
=
?document.createElement(
"
<span?id='
"
+
name
+
"
'?style='width:100px;?height:100px;?background:gray;?border:1px?solid?red'></span>
"
);
????????????document.body.appendChild(e);
????????}
????????init();
????}
????
var
?testObject1?
=
?
new
?TestObject();
????testObject1.addClickListener(
"
site120
"
?,?callback);
????
var
?testObject2?
=
?
new
?TestObject();
????testObject2.addClickListener(
"
afd
"
?,?callback);
</
script
>
</
body
>
?