2013年7月5日星期五

javascript: 破坏引用导致的BUG

用代码来解释:
var g_array = [1,2,3];
function MyClass(arr){
   this.make_bug = function(){
      arr = [4,5,6];
   }

   this.remove_one = function(){
      arr.shift(0);
   }
}

//
var obj = MyClass(g_array);
obj.make_bug();
obj.remove_one();
//可以发现,全局数组根本没有被更改
//因为make_bug里面,破坏了对全局数组的引用

没有评论:

发表评论