自己实现的jQuery的each()源码:
jQuery.each = function(object, callback, args){
for(var i=0; i<object.length; i++){
callback.call(object[i],args);
}
return object;
}
理解这个,需要了解js的继承(面向对象的机制),写个小例子说明下:
function Student(number, name){
this.number = number;
this.name = name;
}
function UniversityStudent(number, name, score){
Student.apply(this,arguments);
this.score = score;
}
var US = new UniversityStudent("20122","小米",98);
//test
console.log(US.number + "\n" + US.name + "\n" + US.score);
说明一点:每一个函数都有一个特殊的参数arguments,利用它可以实现方法的重载(不另外说明)
上面用的是是apply(),如果使用call()该怎么实现?
function UniversityStudent(number, name, score){
Student.apply(this,number,name);
this.score = score;
}
本文介绍了作者实现的 jQuery each() 方法的源码,并通过一个 JavaScript 继承的例子来帮助理解其工作原理。文章还探讨了如何使用 apply 和 call 实现构造函数继承。
925

被折叠的 条评论
为什么被折叠?



