object ، أيضا. أداة مفيدة لمعالجة الكائنات هي الأداة المساعدة Object.assign() . Object.assign() كائن هدف وكائنات المصدر وخرائط الخصائص من كائنات المصدر إلى الكائن الهدف. تتم الكتابة فوق أي خصائص متطابقة بواسطة الخصائص في كائنات المصدر. يتم استخدام هذا السلوك بشكل شائع لعمل نسخ ضحلة من الكائنات بتمرير كائن فارغ كوسيطة أولى متبوعة بالكائن (الكائنات) التي تريد نسخها. إليك مثالاً: const newObject = Object.assign({}, obj1, obj2); يؤدي هذا إلى newObject object جديد ، والذي يحتوي على الخصائص الموجودة حاليًا في obj1 و obj2 . object state . قم بتحرير التعليمة البرمجية لإرجاع كائن state جديد للإجراءات باستخدام الكتابة ONLINE ، والتي تقوم بتعيين خاصية status إلى السلسلة online . حاول استخدام Object.assign() لإكمال التحدي. defaultState المعلنة على السطر 1.
testString: 'assert((function() { const expectedState = { user: "CamperBot", status: "offline", friends: "732,982", community: "freeCodeCamp" }; const initialState = store.getState(); return DeepEqual(expectedState, initialState); })(), "The Redux store should exist and initialize with a state that is equivalent to the defaultState object declared on line 1.");'
- text: يجب أن يكون كل من wakeUp و immutableReducer دالات.
testString: 'assert(typeof wakeUp === "function" && typeof immutableReducer === "function", "wakeUp and immutableReducer both should be functions.");'
- text: يجب أن يؤدي إرسال إجراء من النوع ONLINE تحديث status الخاصية في حالة إلى online ويجب ألا يؤدي إلى تحوُّل الحالة.
testString: 'assert((function() { const initialState = store.getState(); const isFrozen = DeepFreeze(initialState); store.dispatch({type: "ONLINE"}); const finalState = store.getState(); const expectedState = { user: "CamperBot", status: "online", friends: "732,982", community: "freeCodeCamp" }; return isFrozen && DeepEqual(finalState, expectedState); })(), "Dispatching an action of type ONLINE should update the property status in state to online and should NOT mutate state.");'
- text: يجب استخدام Object.assign لإرجاع حالة جديدة.
testString: 'getUserInput => assert(getUserInput("index").includes("Object.assign"), "Object.assign should be used to return new state.");'
```