55 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Immediately Invoked Functions Expressions(IIFEs) | ||
|  | localeTitle: تعبيرات الوظائف المستحثة على الفور (IIFEs) | ||
|  | --- | ||
|  | ## بيان الوظيفة
 | ||
|  | 
 | ||
|  | إن الدالة التي تم إنشاؤها باستخدام تعريف الدالة هي كائن دالة ولها كل خصائص وأساليب وسلوك كائنات الدالة. مثال: | ||
|  | 
 | ||
|  |  `  function statement(item){  | ||
|  |     console.log('Function statement example '+ item);  | ||
|  |   }  | ||
|  | `  | ||
|  | 
 | ||
|  | ## وظيفة التعبير
 | ||
|  | 
 | ||
|  | يشبه تعبير الدالة الدالة الدالة باستثناء أنه يمكن حذف اسم الدالة لإنشاء وظائف مجهولة. مثال: | ||
|  | 
 | ||
|  |  `  var expression = function (item){  | ||
|  |     console.log('Function expression example '+ item);  | ||
|  |   }  | ||
|  | `  | ||
|  | 
 | ||
|  | ## تعبيرات على الفور استدعاء التعابير
 | ||
|  | 
 | ||
|  | بمجرد إنشاء الدالة ، فإنها تستدعي أنها لا تحتاج إلى الاستدعاء صراحة. في المثال أدناه ، سوف يقوم iife المتغير بتخزين سلسلة يتم إرجاعها بواسطة تنفيذ الدالة. | ||
|  | 
 | ||
|  |  `  var iife = function (){  | ||
|  |     return 'Immediately Invoked Function Expressions(IIFEs) example ';  | ||
|  |   }();  | ||
|  |   console.log(iife); // 'Immediately Invoked Function Expressions(IIFEs) example '  | ||
|  | `  | ||
|  | 
 | ||
|  | يجب أن ينتهي البيان قبل IIFE دائمًا بـ: أو سوف يرمي خطأ. | ||
|  | 
 | ||
|  | **مثال سيء** : | ||
|  | 
 | ||
|  |  `var x = 2 //no semicolon, will throw error  | ||
|  |  (function(y){  | ||
|  |   return x;  | ||
|  |  })(x); //Uncaught TypeError: 2 is not a function  | ||
|  | `  | ||
|  | 
 | ||
|  | ## لماذا استخدام تعبيرات الاستدلال على الفور؟
 | ||
|  | 
 | ||
|  |  `  (function(value){  | ||
|  |     var greet = 'Hello';  | ||
|  |     console.log(greet+ ' ' + value);  | ||
|  |   })('IIFEs');  | ||
|  | `  | ||
|  | 
 | ||
|  | في المثال أعلاه عند تنفيذ مشغل javascript فوق الكود ، سيؤدي إلى إنشاء سياق تنفيذ عمومي عندما يرى الكود وإنشاء كائن دالة في الذاكرة لـ IIFE. وعندما تصل إلى السطر `46` بسبب الوظيفة التي يتم استدعاؤها ، يتم إنشاء سياق تنفيذ جديد على الطاير ، وبذلك ينتقل المتغير المتحمس إلى سياق تنفيذ الوظيفة هذا وليس في السياق العالمي ، وهذا ما يجعله فريدًا. `This ensures that code inside IIFE does not interfere with other code or be interfered by another code` ومن ثم تكون الشفرة آمنة. | ||
|  | 
 | ||
|  | #### معلومات اكثر
 | ||
|  | 
 | ||
|  | [تعبير الدالة المستدعى على الفور على ويكيبيديا](https://en.wikipedia.org/wiki/Immediately-invoked_function_expression) [ما الذي تفعله الفاصلة المنقوطة الرائدة في مكتبات JavaScript؟](https://stackoverflow.com/questions/1873983/what-does-the-leading-semicolon-in-javascript-libraries-do) |