آموزش جاوا اسکریپت - توابع - قسمت اول
JavaScript Function Definitions
JavaScript functions are defined with the function keyword.
توابع جاوا اسکریپت با کلیدواژه function تعریف می شوند.
You can use a function declaration or a function expression.
شما می توانید یا از تکنیک Declaration و یا Expression برای تعاریف توابع استفاده نمایید.
Function Declarations
code to be executed
}
return a * b;
}
Since a function declaration is not an executable statement, it is not common to end it with a semicolon.
Function Expressions
A JavaScript function can also be defined using an expression.
A function expression can be stored in a variable:
توابع می توانند به شکل Expression تعریف شوند. در این حالت (به شکل ذیل)، ما متغیری را تعریف کرده و یک تابع را به آن Assign می کنیم:
var x = function (a, b) {return a * b};
After a function expression has been stored in a variable, the variable can be used as a function:
بعد از اینکه تابع به صورت Expression تعریف گردید و ما تابع را در داخل یک متغیر (x) ذخیره کردیم، می توان از متغیر x به صورت یک تابع استفاده کرد. بدین معنی که وقتی متغیر x را فرآخوانی می کنیم، مانند این است که تابع ذخیره شده در آن را فرآخوانی می کنیم.
var x = function (a, b) {return a * b};
var z = x(4, 3);
The function above is actually an anonymous function (a function without a name).
Functions stored in variables do not need function names. They are always invoked (called) using the variable name.
The function above ends with a semicolon because it is a part of an executable statement.
به تابعی که بدون نام، و به شکل فوق تعریف می شود، اصطلاحا Anonymous Function می گویند.
توابعی که به شکل فوق تعریف شده، و آنها را در داخل یک متغیر ذخیره می کنیم، نیازی به نام ندارند. این توابع همیشه از طریق متغیرهایی که آنها را در خود ذخیره کرده اند، اجرا (Invoke) می شوند.
دقت داشته باشید، وقتی که توابع به صورت فوق تعریف می گردند، از آنجایی که به صورت دستور اجرایی تعریف می شوند، باید پس از آکولاد بسته، (;) نوشته شود.
The Function() Constructor
As you have seen in the previous examples, JavaScript functions are defined with the function keyword.
Functions can also be defined with a built-in JavaScript function constructor called Function().
همچنانکه در مثال های قبل ملاحظه کردید، توابع جاوا اسکریپت با کلید واژه function تعریف می شوند.
توابع همچنین می توانند توسط یک تابع سازنده از پیش تعریف شده به نام ()Function نیز تعریف شوند. بدین صورت که آخرین پارامتر آن کد تابع و پارامترهای قبلی آن به عنوان پارامترهای ورودی معرفی می شوند.
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
در مثال فوق، ما یک تابع به صورت anonymous و expression و با استفاده از تابع Function تعریف کرده ایم.
You actually don't have to use the function constructor. The example above is the same as writing:
عملا شما مجبور به استفاده از Function Constructor نمی باشید. مثال فوق دقیقا با مثال ذیل معادل می باشد:
var myFunction = function (a, b) {return a * b};
var x = myFunction(4, 3);
Most of the time, you can avoid using the new keyword in JavaScript.
در اکثر مواقع، شما می توانید از کلید واژه new، در جاوا اسکریپت، اجتناب نمایید.
Function Hoisting
JavaScript functions can be called before they are declared:
به طور خلاصه، مفهوم Hoisting آن است که، شما می توانید تابعی را تعریف کرده و بر خلاف اکثر زبان های برنامه نویسی! قبل از جایی که تابع مربوطه را تعریف کرده اید، از آن تابع استفاده کرده و آنرا اجرا نمایید.:
myFunction(5);
function myFunction(y) {
return y * y;
}
Functions defined using an expression are not hoisted.
دقت داشته باشید، توابعی که به صورت Expression تعریف می شوند، یعنی توابعی که در داخل یک متغیر ذخیره می گردند، نمی توانند به صورت Hoisted مورد استفاده قرار گیرند. یعنی در صورتی که تابعی را به صورت Expression تعریف کرده باشید، نمی توانید متغیر مربوط به تابع مربوطه را، قبل از محل تعریف آن، استفاده نمایید، در این حالت تابع مربوطه اجرا نخواهد شد!
Self-Invoking Functions
Function expressions can be made "self-invoking".
A self-invoking expression is invoked (started) automatically, without being called.
Function expressions will execute automatically if the expression is followed by ().
You cannot self-invoke a function declaration.
You have to add parentheses around the function to indicate that it is a function expression:
در زبان جاوا اسکریپت، می توان به گونه ای تابعی را تعریف نمود که پس از تعریف آن، به طور خودکار اجرا شود. به این دسته از توابع Self-Invoking Functions می گویند.
اینگونه توابع، بدون اینکه نیازی باشد که در خط دیگری در سورس کد، آنها را اجرا نماییم، به طور خودکار اجرا می شوند.
اگر بعد از آکولاد بسته توابع، از دو پرانتز باز و بسته () استفاده شود، این توابع به صورت Self-Invoking Function عمل می کنند.
دقت داشته باشید که اگر صرفا پس از آکولاد بسته تابع، از () استفاده نمایید، با خطا مواجه خواهید شد! لذا باید ابتدا خود تابع را بین پرانتز باز و بسته قرار داده و پس از آن، از () استفاده نمایید.
(function () {
var x = "Hello!!"; // I will invoke myself
})();
لازم به ذکر است که به توصیه Crockford، بهتر است بعد از آکولاد بسته تابع، () را نوشته و سپس تابع و () را با هم، درون یک () دیگر قرار دهید:
// Crockford Recommandation!
(function () {
var x = "Hello!!"; // I will invoke myself
}());
The function above is actually an anonymous self-invoking function (function without name).
اصطلاحا به تابعی که به شکل فوق تعریف می شوند، Anonymous self-invoking function اطلاق می شود. دقت داشته باشید که معمولا در این حالت نام تابع نوشته نمی شود!
Functions Can Be Used as Values
JavaScript functions can be used as values:
در زبان جاوا اسکریپت، گاهی اجرای توابع، به عنوان مقدار، مورد استفاده قرار می گیرند:
function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3);
JavaScript functions can be used in expressions:
و گاهی نیز، می توان در یک عبارت محاسباتی، از نتایج اجرای آنها استفاده نمود:
function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3) * 2;
پایان قسمت اول... با ما باشید...
مرجع: http://www.W3Schools.com
- ۹۴/۰۸/۱۰
این پست خیلی عالی بود
من روزی 4-5 بار وبلاگ شما را چک می کنم که اگر مطلب جدیدی گذاشتید از آن بهره ببرم
با تشکر از شما.