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();