网站首页 javascript技术
JS中的方法传值到底是什么形态
发布时间:2016-09-29 16:06查看次数:3923
这里说下 我今天踩的深深的坑~~~~~
代码如下:// var test = [];
var test = [];
test['a'] ='a1';
console.log(test2(test)) ;
function test2(aaa){
for(var i=0;i<10;i++){
this.bbb['b'] = 'b' + i;
return this.bbb;
// console.log(aaa);
}
}
console.log(test);
这里打印了结果:按照PHP常理理解用过是
b1 | 到 | b9 |
实际上全部是B9,折腾了我3个小时,最后在JAVASCRIPT 高级编程中找到了解
因为JAVASCRIPT的 方法传参 跟PHP不一样 他有两种传参模式
1.复制传参 (我自己发明是说法,就是针对字符串/数字/浮点数数)
2.引用传参 (就不管这个参数你传递了多少层 改了什么属性添加了什么属性,但是最终他指向他的根内存地址) 这种参数就是 数组 和对象
今天踩的这个坑就是栽在 引用传参上
PHP的引用传参是主动模式就是你加&符号了才是引用传参,而JAVASCRIPT是被动模式 不管你引用不引用他都是那样
能看到这里,还是建议你看看 JAVASCRIPT高级编程 多读书还是没有错的!
想想也是醉了~~~~ 编程路漫漫 2016年9月30日00:02:11 杭州 德玛西亚
关键字词:JS中的方法传值到底是什么形态