* auto – 自动执行模型:每添加一个回调函数,自动执行现有的回调函数集合里的所有回调函数,并将本次的参数传递给所有的回调函数
*
*/
//工具函数
var isIndexOf = Array.prototype.indexOf, //Es6
toString = Object.prototype.toString, //缓存toString方法
toSlice = Array.prototype.slice, //缓存slice方法
isFunction = (function () { //判定一个对象是否是Function
return “object” === typeof document.getElementById ?
isFunction = function (fn) {
//ie下对DOM和BOM的识别有问题
try {
return /^s*bfunctionb/.test(“” + fn);
} catch (x) {
return false
}
} :
isFunction = function (fn) { return toString.call(fn) === ‘[object Function]’; };
})(),
each = function () { //循环遍历方法
//第一个参数表示要循环的数组,第二个参数是每次循环执行的函数
if (arguments.length < 2 || !isFunction(arguments[1])) return;
//为什么slice无效??
var list = toSlice.call(arguments[0]),
fn = arguments[1],










