47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Use Destructuring Assignment to Pass an Object as a Function's Parameters
							 | 
						||
| 
								 | 
							
								localeTitle: استخدم Destructuring Assignment لتمرير كائن كمعامل الدالة
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## استخدم Destructuring Assignment لتمرير كائن كمعامل الدالة
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								يمكنك تمرير الكائن بأكمله ، ثم اختيار السمات المحددة التي تريدها باستخدام `.` المشغل أو العامل. لكن ES6 يقدم خيار أكثر أناقة!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## تلميح 1:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								تخلص من `stats` ، وتحقق مما إذا كان بإمكانك تدميرها. نحن بحاجة إلى `max` و `min` من `stats` .
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## تحذير المفسد - حلول قادمة!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## الحل 1:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 `const half = (function() { 
							 | 
						||
| 
								 | 
							
								  "use strict"; // do not change this line 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  // change code below this line 
							 | 
						||
| 
								 | 
							
								  return function half({max, min}) { 
							 | 
						||
| 
								 | 
							
								    // use function argument destructuring 
							 | 
						||
| 
								 | 
							
								    return (max + min) / 2.0; 
							 | 
						||
| 
								 | 
							
								  }; 
							 | 
						||
| 
								 | 
							
								  // change code above this line 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 })(); 
							 | 
						||
| 
								 | 
							
								` 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								لاحظ أننا ندمر `stats` لتمرير اثنين من صفاتها - `max` `min` - إلى الوظيفة. لا تنس تعديل بيان الإرجاع الثاني. تغيير `stats.max` إلى `max` ، وتغيير `stats.min` إلى `min` فقط.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## الحل 2:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								هنا هو حل آخر يعمل. ليس الكثير من الاختلاف ، بخلاف حقيقة أن الوظيفة لا تملك اسمًا.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 `const half = (function() { 
							 | 
						||
| 
								 | 
							
								  "use strict"; // do not change this line 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  // change code below this line 
							 | 
						||
| 
								 | 
							
								  return (({max, min}) => { 
							 | 
						||
| 
								 | 
							
								    // use function argument destructuring 
							 | 
						||
| 
								 | 
							
								    return (max + min) / 2.0; 
							 | 
						||
| 
								 | 
							
								  }); 
							 | 
						||
| 
								 | 
							
								  // change code above this line 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 })(); 
							 | 
						||
| 
								 | 
							
								`
							 |