Bir diziyi aşağıdakilerle klonlayabilirsiniz Array#slice
:
console.log(s); // ["bye"], i.e. incorrect
console.log(s.slice()); // ["hi"], i.e. correct
Bunun yerine kullanabileceğiniz console.log
bu sorunu olmayan bir işlev aşağıdaki gibidir:
console.logShallowCopy = function () {
function slicedIfArray(arg) {
return Array.isArray(arg) ? arg.slice() : arg;
}
var argsSnapshot = Array.prototype.map.call(arguments, slicedIfArray);
return console.log.apply(console, argsSnapshot);
};
Nesneler söz konusu olduğunda, ne yazık ki, en iyi yöntem ilk önce WebKit olmayan bir tarayıcıyla hata ayıklamak veya klonlamak için karmaşık bir işlev yazmak gibi görünmektedir. Yalnızca basit nesnelerle çalışıyorsanız, anahtar sırasının önemli olmadığı ve işlevin olmadığı durumlarda, her zaman şunları yapabilirsiniz:
console.logSanitizedCopy = function () {
var args = Array.prototype.slice.call(arguments);
var sanitizedArgs = JSON.parse(JSON.stringify(args));
return console.log.apply(console, sanitizedArgs);
};
Bu yöntemlerin tümü açıkça çok yavaştır, bu nedenle normal console.log
s'dekinden daha fazla, hata ayıklamayı bitirdikten sonra onları çıkarmanız gerekir.