YUI学习笔记(3)
作者:xujiwei 来源:HotHeart's BLOG 时间:2009-01-21 16:24:00
阅读《YUI学习笔记(1)》《YUI学习笔记(2)》
YAHOO.lang.later,YAHOO.lang.trim,YAHOO.lang.isXXX 以及 YAHOO.lang.hasOwnProperty。
1. YAHOO.lang.later(yahoo/yahoo.js)
later 方法用来延迟执行方法,是对 setInterval 和 setTimeout 的封装,并且可以传递参数到延迟执行的函数或者使用参数数组批量执行指定的函数。
later 方法的签名为:
later: function(when, o, fn, data, periodic)
when 是用来指定在多长时间后执行指定的函数,以毫秒计算;
o 是上下文对象,即在要执行的函数里使用 this 是会引用这个 o 对象;
fn 就是要延迟执行的函数了,可以传递一个函数引用,也可以传递一个字符串,later 方法会在 o 对象中查找对应名称的属性来做为要执行的方法;
data 就是传递给延迟执行的函数的参数了,可以为一个参数,或者是一个参数数组,那么如果我们要传递的参数本身就是一个数组的话,就要自己先把这个参数数组包装成一个数组;
peridoic 参数是一个布尔值,用来表示延迟执行的函数是否需要周期执行而不是只执行一次。
later 方法执行后会返回一个对象,包含了一个名 interval 的属性用来表示函数是以 setInterval 来执行的还是以 setTimeout 来执行的,以及一个方法 cancel 用来取消执行被延迟执行的函数。嗯,不过只有在 peridoic 为 true 时这个 cancel 方法比较有用,毕竟如果 peridoic 为 false 时函数执行一次就不会再执行了,cancel 也没有什么意义。
{
interval: periodic,
cancel: function() {
if (this.interval) {
clearInterval(r);
} else {
clearTimeout(r);
}
}
};