发表于: 2016-12-29 02:05:37
2 1542
今天完成的计划:发现首页判断的逻辑出现了问题重新整理了一遍。
收获:在微信小程序中
1.url传参:
<navigator url="/pages/detail/detail?id=2"></navigator>
<navigator url="/pages/detail/detail?id"+p></navigator>//这里的p可以是变量了如果是对象数组可以先转换成字符串在传
Page({ onLoad (opositions) { //opositions是一个对象 opositions.id 就可以取到要传的参数
// 看看是不是你想要的 console.log(opositions.id)
} })
2.浅拷贝与深拷贝的问题
var arr = ["One","Two","Three"];var arrto = arr;
arrto[1] = "test"; document.writeln("数组的原始值:" + arr + "<br />");//Export:数组的原始值:One,test,Three
document.writeln("数组的新值:" + arrto + "<br />");//Export:数组的新值:One,test,Three
这就是浅拷贝 会导致原数组发生变化
数组 解决的方法
arrayObj.slice(start, [end])
对于array对象的slice函数,
返回一个数组的一段。(仍为数组) strat 与end 指的是下标index
var arr = ["One","Two","Three"];
var arrtoo = arr.slice(0); arrtoo[1] = "set Map";
document.writeln("数组的原始值:" + arr + "<br />");//Export:数组的原始值:One,Two,Three
document.writeln("数组的新值:" + arrtoo + "<br />");//Export:数组的新值:One,set Map,Three
通过返回一个数组的片段 所以原数组不会改变。
对象的解决方法
主要是要通过遍历
var a={name:'yy',age:26};
var b=new Object();
b.name=a.name; 把原对象的值赋给新的对象属性 这样改变新的对象是不会改变原对象的
b.age=a.age;
b.name='zz';
console.log(b);//Object { name="zz", age=26}
console.log(a);//Object { name="yy", age=26}
评论