当前位置: 首页 > Web前端 > HTML5

Zepto源码学习(三)

时间:2023-04-06 00:21:34 HTML5

最近开始学习Zepto源码,分享一下,一起学习。前端新人,技术差,求gitbook地址参考,望见谅。感谢作者贡献$.extend对象扩展方法。该函数只有一个参数,但是需要合并的对象是通过arguments获取的。试着去理解它。反正需要合并的对象很多,所以参数的个数也不固定。最好通过arguments来获取,看看deep的初始值是undefined。该副本是浅拷贝。复制第一层。如果深层是参照物,就会相互影响。$.extend=function(target){vardeep,args=slice.call(arguments,1)if(typeoftarget=='boolean'){deep=targettarget=args.转移()}参数。forEach(function(arg){extend(target,arg,deep)})returntarget}extend代码:目标对象,源对象,是否深拷贝,三个参数functionextend(target,source,deep){for(源中的键)if(deep&&(isPlainObject(source[key])||isArray(source[key]))){if(isPlainObject(source[key])&&!isPlainObject(target[key]))target[key]={}if(isArray(source[key])&&!isArray(target[key]))target[key]=[]extend(target[key],source[key],deep)}elseif(source[key]!==undefined)target[key]=source[key]}$.each用于遍历数组或对象,源码如下:$.each=function(elements,callback){vari,keyif(likeArray(elements)){for(i=0;i