您的位置:首页 > Web前端 > JavaScript

js之生命周期坑

2015-12-02 09:53 253 查看
JS的坑着实不少,昨天又遇一坑,关于对象生命周期

[code]var ar = []
for(var i = 0; i < 5; i++){
    var obj = {x : 1, y : 5};
    ar.push(obj);
}
obj.x = -1;


是的,ar里面最后一个元素的x变了。

原因是var的作用域是整个function,而不是for内部。

解决的办法是使用let,还没有支持这个特性之前,必须小心对待

PS当前解决方案如下

[code]var ar = []
for(var i = 0; i < 5; i++){
    var obj = {x : 1, y : 5};
    ar.push(obj);
    obj = null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: