ভ্যানিলা জেএস:
@ ইভানের উত্তরটি এখানে সেরা বলে মনে হচ্ছে। অবজেক্টের অনুলিপি কার্যকরভাবে তৈরি করতে কেবল (আব) JSON.parse / স্ট্রিংফাইড ব্যবহার করুন।
console.log(JSON.parse(JSON.stringify(test)));
JQuery নির্দিষ্ট সমাধান:
আপনি সময়ের সাথে নির্দিষ্ট সময়ে একটি বস্তুর স্ন্যাপশট তৈরি করতে পারেন jQuery.extend
console.log($.extend({}, test));
এখানে আসলে যা ঘটছে তা হ'ল jQuery হ'ল testবস্তুর সামগ্রীতে একটি নতুন অবজেক্ট তৈরি করছে এবং লগিং করছে (যাতে এটি পরিবর্তন হবে না)।
AngularJS (1) নির্দিষ্ট সমাধান:
কৌণিক একটি copyকার্যকারিতা সরবরাহ করে যা একই প্রভাবের জন্য ব্যবহৃত হতে পারে:angular.copy
console.log(angular.copy(test));
ভ্যানিলা জেএস র্যাপার ফাংশন:
এখানে এমন একটি ফাংশন রয়েছে যা মোড় করে console.logতবে লগ আউট করার আগে কোনও বস্তুর অনুলিপি তৈরি করে।
আমি উত্তরগুলিতে কয়েকটি অনুরূপ তবে কম শক্তিশালী ফাংশনের প্রতিক্রিয়াতে এটি লিখেছিলাম। এটি একাধিক যুক্তি সমর্থন করে এবং জিনিসগুলি নিয়মিত বস্তু না হলে অনুলিপি করার চেষ্টা করবে না will
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))
}
উদাহরণস্বরূপ ব্যবহার :consoleLogWithObjectCopy('obj', {foo: 'bar'}, 1, /abc/, {a: 1})