关于Js 进一步应用遇到的小问题--总结 深拷贝,浅拷贝、闭包实例应用

js 的深拷贝,浅拷贝,

触发

1、var a=[1,2,3,4],b=a,这个时候就触发了拷贝的问题,具体可以看下堆栈,我们这里指向了同一个地址,主要是在解决问题

解决

2、 一般情况下我们就JSON.parse(JSON.stringify(变量值))可以通过这样去解决,这个其实也一种浅拷贝的方法,原型上的东西不能保留下来
3、如果我们需要保留原型 可以采用$.extend(true, [], 变量值) 针对里面的源码解析,我一时没有机会去看,后续补充

Js 闭包问题

1、先看下面的这段代码,你会发现,for循环里面的拿不到,

  $(function(){	
		var obj = $(".demo");
		var size = obj.size();
		for(var i=0; i<size; i++ ){
			obj.eq(i).onLine({
				regainCanvas: true
			});
		}
  });

解决

var ss = function(){
			var obj = $(".demo");
			var size = obj.size();
			for(var i=0; i<size; i++ ){
				(function(){
					obj.eq(i).onLine({
						regainCanvas: true
					});
				})(i)
			}
		};
		ss();

参考文献 https://blog.csdn.net/cauchy6317/article/details/81167572,至今没有真正的懂闭包原理及举一反三。

posted @ 2021-05-14 17:44  Empress&  阅读(70)  评论(0编辑  收藏  举报