arrayEquals(array1, array2) {
// if array1 or array2 is a falsy value, return
if (!array1 || !array2) return false;
// compare lengths - can save a lot of time
if (array1.length != array2.length) return false;
for (var i = 0, l = array1.length; i < l; i++) {
// Check if we have nested arrays
if (array1[i] instanceof Array && array2[i] instanceof Array) {
// recurse into the nested arrays
if (!Tool.arrayEquals(array1[i], array2[i])) return false;
} else if (array1[i] instanceof Object && array2[i] instanceof Object) {
// 比较含有的对象是否相等
if (!Tool.objectEquals(array1[i], array2[i])) return false;
} else if (array1[i] != array[i]) {
// Warning - two different object instances will never be equal: {x:20} != {x:20}
return false;
}
}
return true;
},