JavaScript فنکشن چوئن

JavaScript 函数是通过 function 关键词定义的。

您可以使用函数اعلان或函数表达式

函数声明

在本教程中稍早之前,您学到了通过如下语法اعلان函数:

function functionName(parameters) {
   要执行的代码
}

被声明的函数不会直接执行。它们被“保存供稍后使用”,将在稍后执行,当它们被调用时。

ਇੰਸਟੈਂਸ

function myFunction(a, b) {
     return a * b;
}

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

分号用于分隔可执行的 JavaScript 语句。

由于函数اعلان不是可执行的语句,以分号结尾并不常见。

函数表达式

JavaScript 函数也可以使用表达式来定义。

函数表达式可以在变量中存储:

ਇੰਸਟੈਂਸ

var x = function (a, b) {return a * b};

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

在变量中保存函数表达式之后,此变量可用作函数:

ਇੰਸਟੈਂਸ

var x = function (a, b) {return a * b};
var z = x(4, 3);

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

مذکورہ فنکشن کا حقیقی طور پر ایک匿名函数(نا نام کا فنکشن)。

存放在变量中的函数不需要函数名。他们总是使用变量名调用。

上面的函数使用分号结尾,因为它是可执行语句的一部分。

Function() 构造器

正如您在之前的例子中看到的,JavaScript 函数是通过 function 关键词定义的。

فنکشن بھی نام کئی جانچ کے ذریعہ Function() بناکر تعریف کیا جاسکتا ہے۔

ਇੰਸਟੈਂਸ

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

آپ کو کچھ بھی فنکشن کانسٹرکٹر استعمال نہیں کرنا چاہئے۔ مذکورہ مثال کو اس طرح بھی لکھا جاسکتا ہے:

ਇੰਸਟੈਂਸ

var myFunction = function (a, b) {return a * b};
var x = myFunction(4, 3);

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

بہت سے صورتوں میں آپ کو جسوس میں new کلید ورڈ

فنکشن بلند کردینا

آپ نے اس درس میں جلد ہی سیکھا ہے کہ 'بلند کردینا' (hoisting) کیا ہے۔

Hoisting جسوس میںاعلانیہ ایک طبیعی کارروائی ہے جس میں متغیر اور فنکشن اعلان بلند کردیئے جاتے ہیں۔

Hoisting اس کا استعمال متغیر اعلان اور فنکشن اعلان پر کیا جاتا ہے۔

اس لئے، جسوس کی فنکشن کو اعلان سے پہلے بولی دینا جاسکتا ہے:

myFunction(5);
 function myFunction(y) {
     return y * y;
}

عبارت کے ذریعے تعریف کردہ فنکشن کو بلند نہیں کیا جاتا ہے۔

خود چلنے والا فنکشن

فنکشن ایکشن ‘خود چلنے والی’ کے طور پر استعمال کی جاسکتے ہیں。

خود چلنے والی عبارت خود بخود بولی دینے والی ہیں، اگر ان کا بعد کو بولی دینا نہیں کیا جاتا ہے۔

فنکشن ایکشن خود بخود چلتی ہیں، اگر عبارت کے بعد ()

آپ کو فنکشن کا اعلان کو خود چلنا نہیں دینا چاہئے۔

آپ کو فنکشن کے اطراف میں کچھ کی جگہ لگانا ہوگا، تاکہ وہ فنکشن ایکشن کا حوالہ دے سکے:

ਇੰਸਟੈਂਸ

(function () {
    var x = "Hello!!";      // میں خود کو بولوں
})();

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

مذکورہ فنکشن کا حقیقی طور پر ایکنا نام کا خود چلنے والا فنکشن(نا نام کا فنکشن)。

فنکشن کو کچھ کی جگہ استعمال کیا جاسکتا ہے

جسوس کی فنکشن کو کچھ کی جگہ استعمال کیا جاسکتا ہے:

ਇੰਸਟੈਂਸ

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3);

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

جسوس کی فنکشن کو عبارت میں استعمال کیا جاسکتا ہے:

ਇੰਸਟੈਂਸ

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3) * 2;

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

فنکشن آئیٹم ہیں

جسوس میں typeof آپریٹر کو فنکشن کو "function"。

لیکن بہترین طریقہ یہ ہے کہ جسوس کی فنکشن کو ایک آئیٹم کے طور پر وصف کیا جائے。

جسوس کی فنکشنوں میںویژگیاورمетод

arguments.length یہ فنکشن کو بولی دینے والے پارامتروں کی تعداد کو بر آمدار کرتا ہے:

ਇੰਸਟੈਂਸ

function myFunction(a, b) {
    return arguments.length;
}

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

toString() مетод کا سٹرنگ کی شکل میں فنکشن بر آمدار کرتا ہے:

ਇੰਸਟੈਂਸ

function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

ਆਬਜੈਕਟ ਦੀ ਪ੍ਰਤਿਯਾਇਕ ਦੇ ਰੂਪ ਵਿੱਚ ਦਿਆ ਗਿਆ ਫੰਕਸ਼ਨ, ਆਬਜੈਕਟ ਮੇਥਡ ਕਿਹਾ ਜਾਂਦਾ ਹੈ。

ਨਵੇਂ ਆਬਜੈਕਟ ਬਣਾਉਣ ਲਈ ਦਿਆ ਗਿਆ ਫੰਕਸ਼ਨ, ਆਬਜੈਕਟ ਕਾਸਟਰੂਕਟਰ (ਆਬਜੈਕਟ ਕਾਸਟਰੂਕਟਰ) ਕਿਹਾ ਜਾਂਦਾ ਹੈ。

ਕਿਰਾਨੇ ਫੰਕਸ਼ਨ

ਕਿਰਾਨੇ ਫੰਕਸ਼ਨ ਫੰਕਸ਼ਨ ਐਕਸਪ੍ਰੈਸ਼ਨ ਦੀ ਸੰਖੇਪ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਦਿੰਦੇ ਹਨ。

ਤੁਸੀਂ function ਕੀਵਰਡ, return ਕੀਵਰਡ ਅਤੇ ਬੰਦਕੜੀਆਂ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ。

ਇੰਸਟੈਂਸ

// ES5
var x = function(x, y) {
  return x * y;
}
// ES6
const x = (x, y) => x * y;

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

ਕਿਰਾਨੇ ਫੰਕਸ਼ਨ ਆਪਣਾ ਆਪਣਾ this ਨਹੀਂ ਹਨ।ਉਹ ਆਬਜੈਕਟ ਮੇਥਡ ਦੇ ਰੂਪ ਵਿੱਚ ਵਰਤੇ ਨਹੀਂ ਜਾਂਦੇ ਹਨ。

ਕਿਰਾਨੇ ਫੰਕਸ਼ਨ ਉੱਚਾ ਨਹੀਂ ਲਿਆਂਦੇ ਜਾਂਦੇ ਹਨ।ਉਹ ਵਰਤੋਂ ਤੋਂ ਪਹਿਲਾਂ ਨਿਰਧਾਰਿਤ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ。

const ਨੂੰ var ਤੋਂ ਸੁਰੱਖਿਅਤ ਹੈ ਕਿਉਂਕਿ ਫੰਕਸ਼ਨ ਐਕਸਪ੍ਰੈਸ਼ਨ ਹਮੇਸ਼ਾ ਇੱਕ ਸਥਾਈ ਮੁੱਲ ਹੈ。

ਜੇਕਰ ਫੰਕਸ਼ਨ ਇੱਕ ਕੇਵਲ ਵਾਕ ਹੈ ਤਾਂ ਰਿਟਰਨ ਕੀਵਰਡ ਅਤੇ ਬੰਦਕੜੀਆਂ ਨੂੰ ਖਤਮ ਕਰਨਾ ਹੈ।ਇਸ ਲਈ ਉਨ੍ਹਾਂ ਨੂੰ ਰੱਖਣਾ ਇੱਕ ਚੰਗਾ ਆਦਤ ਹੋ ਸਕਦੀ ਹੈ:

ਇੰਸਟੈਂਸ

const x = (x, y) => { return x * y };

ਸੁਭਾਵਿਕ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਕਰੋ

IE11 ਜਾਂ ਪੁਰਾਣੇ ਸ਼ਾਮਿਲ ਹਨ ਕਿਰਾਨੇ ਫੰਕਸ਼ਨ ਨਹੀਂ ਸਮਰੱਥ ਹਨ。