mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-09 09:00:34 +08:00
perf(shallowCopy): use Object.keys to improve performance
This change is not IE8 friendly
This commit is contained in:
@@ -819,17 +819,22 @@ function copy(source, destination, stackSource, stackDest) {
|
||||
* Creates a shallow copy of an object, an array or a primitive
|
||||
*/
|
||||
function shallowCopy(src, dst) {
|
||||
var i = 0;
|
||||
if (isArray(src)) {
|
||||
dst = dst || [];
|
||||
|
||||
for ( var i = 0; i < src.length; i++) {
|
||||
for (; i < src.length; i++) {
|
||||
dst[i] = src[i];
|
||||
}
|
||||
} else if (isObject(src)) {
|
||||
dst = dst || {};
|
||||
|
||||
for (var key in src) {
|
||||
if (hasOwnProperty.call(src, key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) {
|
||||
var keys = Object.keys(src);
|
||||
|
||||
for (var l = keys.length; i < l; i++) {
|
||||
var key = keys[i];
|
||||
|
||||
if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {
|
||||
dst[key] = src[key];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user