{"ScriptPreparationCode":null,"TestCases":[{"Name":"prototype","Code":"const obj = {\r\n a: 1,\r\n b: 2,\r\n itemQty: 10,\r\n stockStatus: \u0027IN_STOCK\u0027\r\n}\r\n\r\nfunction itemFilter(transformer) {\r\n delete transformer.item.itemQty;\r\n delete transformer.item.stockStatus\r\n return transformer.transform();\r\n}\r\n\r\n/* function featureRoleFilter(item) {\r\n delete item.stockStatus\r\n return item\r\n}\r\n */\r\nfunction TransformItem(item) {\r\n this.item = item;\r\n this.transform = () =\u003E this.item;\r\n}\r\n\r\nfor(let i=0;i \u003C 10000;i\u002B\u002B) {\r\nconst i = new TransformItem(obj)\r\nconsole.log(i)\r\n\r\nitemFilter(i)\r\n\r\nconsole.log(i.item)\r\n}\r\n\r\n","IsDeferred":false},{"Name":"class","Code":"const obj = {\r\n a: 1,\r\n b: 2,\r\n itemQty: 10,\r\n stockStatus: \u0027IN_STOCK\u0027\r\n}\r\n\r\nclass Item {\r\n constructor() {\r\n this.item = obj;\r\n }\r\n transform() {\r\n return this.item;\r\n }\r\n}\r\n\r\nclass FeatureRoleFilter extends Item {\r\n constructor(t) {\r\n super();\r\n this.t = t;\r\n }\r\n transform() {\r\n delete this.item.itemQty;\r\n delete this.item.stockStatus;\r\n return this.t.transform();\r\n }\r\n}\r\n\r\n\r\nfor(let i=0;i\u003C10000; i\u002B\u002B){\r\nlet transformer = new Item();\r\nconsole.log(transformer.transform())\r\ntransformer = new FeatureRoleFilter(transformer)\r\nconsole.log(transformer.transform())\r\n\r\n}\r\n","IsDeferred":false}]}