Modify helper.clone to clone an array too

This commit is contained in:
Hyunje Alex Jun 2016-02-22 20:46:28 +09:00
parent cfc658d648
commit 6f63623b93

View File

@ -3,17 +3,19 @@
var cls = require('./class') var cls = require('./class')
, d = require('./dom'); , d = require('./dom');
exports.toInt = function (x) { var toInt = exports.toInt = function (x) {
return parseInt(x, 10) || 0; return parseInt(x, 10) || 0;
}; };
exports.clone = function (obj) { var clone = exports.clone = function (obj) {
if (obj === null) { if (obj === null) {
return null; return null;
} else if (obj.constructor === Array) {
return obj.map(clone);
} else if (typeof obj === 'object') { } else if (typeof obj === 'object') {
var result = {}; var result = {};
for (var key in obj) { for (var key in obj) {
result[key] = this.clone(obj[key]); result[key] = clone(obj[key]);
} }
return result; return result;
} else { } else {
@ -22,9 +24,9 @@ exports.clone = function (obj) {
}; };
exports.extend = function (original, source) { exports.extend = function (original, source) {
var result = this.clone(original); var result = clone(original);
for (var key in source) { for (var key in source) {
result[key] = this.clone(source[key]); result[key] = clone(source[key]);
} }
return result; return result;
}; };
@ -47,11 +49,11 @@ exports.removePsClasses = function (element) {
}; };
exports.outerWidth = function (element) { exports.outerWidth = function (element) {
return this.toInt(d.css(element, 'width')) + return toInt(d.css(element, 'width')) +
this.toInt(d.css(element, 'paddingLeft')) + toInt(d.css(element, 'paddingLeft')) +
this.toInt(d.css(element, 'paddingRight')) + toInt(d.css(element, 'paddingRight')) +
this.toInt(d.css(element, 'borderLeftWidth')) + toInt(d.css(element, 'borderLeftWidth')) +
this.toInt(d.css(element, 'borderRightWidth')); toInt(d.css(element, 'borderRightWidth'));
}; };
exports.startScrolling = function (element, axis) { exports.startScrolling = function (element, axis) {