{"ScriptPreparationCode":"for (i = 0; i \u003C 10; i\u002B\u002B) {\r\n\r\n}","TestCases":[{"Name":"Test non flyweight","Code":"var candidateNum = 2000 // \u8003\u751F\u6570\u91CF\r\nvar examCarNum = 0 // \u9A7E\u8003\u8F66\u7684\u6570\u91CF\r\n\r\n/* \u9A7E\u8003\u8F66\u6784\u9020\u51FD\u6570 */\r\nfunction ExamCar(carType) {\r\n examCarNum\u002B\u002B\r\n this.carId = examCarNum\r\n this.carType = carType ? \u0027\u624B\u52A8\u6863\u0027 : \u0027\u81EA\u52A8\u6863\u0027\r\n}\r\n\r\nExamCar.prototype.examine = function(candidateId) {\r\n console.log(\u0027\u8003\u751F- \u0027 \u002B candidateId \u002B \u0027 \u5728\u0027 \u002B this.carType \u002B \u0027\u9A7E\u8003\u8F66- \u0027 \u002B this.carId \u002B \u0027 \u4E0A\u8003\u8BD5\u0027)\r\n}\r\n\r\nfor (var candidateId = 1; candidateId \u003C= candidateNum; candidateId\u002B\u002B) {\r\n var examCar = new ExamCar(candidateId % 2)\r\n examCar.examine(candidateId)\r\n}","IsDeferred":false},{"Name":"Test flyweight","Code":"var candidateNum = 2000 // \u8003\u751F\u6570\u91CF\r\nvar examCarNum = 0 // \u9A7E\u8003\u8F66\u7684\u6570\u91CF\r\n\r\nconst map = new Map();\r\n\r\n/* \u9A7E\u8003\u8F66\u6784\u9020\u51FD\u6570 */\r\nfunction ExamCar(carType) {\r\n examCarNum\u002B\u002B\r\n this.carId = examCarNum\r\n this.carType = carType ? \u0027\u624B\u52A8\u6863\u0027 : \u0027\u81EA\u52A8\u6863\u0027\r\n}\r\n\r\nExamCar.prototype.examine = function(candidateId) {\r\n \tconst student = map.get(candidateId);\r\n console.log(\u0027\u8003\u751F- \u0027 \u002B student.id \u002B \u0027 \u5728\u0027 \u002B this.carType \u002B \u0027\u9A7E\u8003\u8F66- \u0027 \u002B this.carId \u002B \u0027 \u4E0A\u8003\u8BD5\u0027)\r\n}\r\n\r\nvar manualExamCar = new ExamCar(true)\r\nvar autoExamCar = new ExamCar(false)\r\n\r\nfor (var candidateId = 1; candidateId \u003C= candidateNum; candidateId\u002B\u002B) {\r\n var examCar = candidateId % 2 ? manualExamCar : autoExamCar\r\n map.set(candidateId, {id: candidateId})\r\n examCar.examine(candidateId)\r\n}","IsDeferred":false}]}