背景
用 setTimeout 多了,总是觉得这函数就差那么一点点,不是很顺手,就萌生了要改造一下此函数的念头;改成可以链式编程的,名字也更加接地气点的,就叫 delay 吧。
直接挂原型链代码如下:
/**
* 让目标(Object)延时执行,可以链式使用
*
* @param {Number} time
* @param {Function} doSomething -
* - @param {Object} self -- 作为参数回调使用
* - @param {Number} startTime -- 作为参数回调使用
* @return {Object}
*/
Object.prototype.delay = function (time, doSomething) {
var self = this,
startTime = time;
if (self) {
setTimeout(function () {
doSomething(self, startTime);
}, time);
}
return this;
}