Vanilya JS:
@ evan'ın cevabı burada en iyi görünüyor. Sadece (ab), nesnenin bir kopyasını etkili bir şekilde oluşturmak için JSON.parse / stringify kullanın.
console.log(JSON.parse(JSON.stringify(test)));
JQuery'ye özel çözüm:
İle belirli bir zamanda bir nesnenin anlık görüntüsünü oluşturabilirsiniz. jQuery.extend
console.log($.extend({}, test));
Burada gerçekte olan şey, jQuery test
nesnenin içeriğiyle yeni bir nesne oluşturuyor ve bunu günlüğe kaydetiyor (böylece değişmeyecek).
AngularJS (1) özel çözüm:
Açısal copy
, aynı etkiyle kullanılabilecek bir işlev sağlar :angular.copy
console.log(angular.copy(test));
Vanilla JS sarmalayıcı işlevi:
İşte console.log
herhangi bir nesneyi sarmalayan ancak oturumu kapatmadan önce bir kopyasını oluşturan bir işlev .
Bunu yanıtlardaki birkaç benzer ancak daha az sağlam işleve yanıt olarak yazdım. Birden fazla argüman destekler ve olacak değil bunlar değilse şeyleri kopyalamak için deneyin düzenli nesneler.
function consoleLogWithObjectCopy () {
var args = [].slice.call(arguments);
var argsWithObjectCopies = args.map(copyIfRegularObject)
return console.log.apply(console, argsWithObjectCopies)
}
function copyIfRegularObject (o) {
const isRegularObject = typeof o === 'object' && !(o instanceof RegExp)
return isRegularObject ? copyObject(o) : o
}
function copyObject (o) {
return JSON.parse(JSON.stringify(o))
}
örnek kullanım :consoleLogWithObjectCopy('obj', {foo: 'bar'}, 1, /abc/, {a: 1})