ECMAScript Function အားစား(အမျိုးအစား)

ECMAScript ဖြစ်စဉ် အားဖြင့် အပြည့်အဝင့် ဖြစ်သော ဖြစ်စဉ်

Function အိုေက်ာစ် (အမျိုးအစား)

ECMAScript အနေဖြင့် ဖြစ်စဉ် အားဖြင့် အပြည့်အဝင့် ဖြစ်သော ဖြစ်စဉ် အား အများဆုံး စိတ်ဝင်စားသည်

Function ကဲ့သို့ ဖြစ်စဉ် အားဖြင့် အပြည့်အဝင့် ဖြစ်သော ဖြစ်စဉ် ကို ကိုင်တွယ်နိုင်သည်

Function ကဲ့သို့ ဖြစ်စဉ် ကို တိကျမှု ဖွဲ့စည်းပုံ မှာ ဖြစ်နေသည့်အတိုင်း ဖွဲ့စည်းနိုင်သည်

var function_name = new function(arg1, arg2, ..., argN, function_body)

在上面的形式中,每个 arg 都是一个参数,最后一个参数是函数主体(要执行的代码)。这些参数必须是字符串。

သင်မှာ ဒါကို သိပါသလေး?

function sayHi(sName, sMessage) {
  alert("Hello " + sName + sMessage);
}

ထို့နောက် ထို့နောက် အတိုင်း ဖော်ထုတ်ထားသည်:

var sayHi 
= 
new Function("sName", "sMessage", "alert(\"Hello \" + sName + sMessage);");

အခြေခံအကြောင်းရပ်ကြောင်း ပြုလုပ်ခြင်း အတွက် အခြေခံအကြောင်းရပ် ကျယ်လာသည် မဟုတ်သေးသေး ဖြစ်သည်သော်လည်း ဖော်ထုတ်ထားသော ပုဂ္ဂိုလ် သည် ဖော်ထုတ်ထားသော ပုဂ္ဂိုလ် ကို အသုံးပြုသော အသင့်တူ ဖြစ်သည်။

အောက်ပါ အကြောင်းရပ်ကို ကြည့်ပါ:

function doAdd(iNum) {
  alert(iNum + 20);
}
function doAdd(iNum) {
  alert(iNum + 10);
}
doAdd(10);	//ထုတ်ဖော် "20"

ဤသို့ အခြေခံအကြောင်းရပ်ကို ပြန်လည်ရေးသားထားပါက အကျိုးဆက်သကဲ့သို့ ကျွန်းပွားလာသည်: ဒါမှာ doAdd(10) က ထုတ်ဖော် "20" ကို မထုတ်ဖော်နိုင်၊ သို့တည်းမဟုတ် "30" ကို ထုတ်ဖော်သည်。

အကြောင်းရပ်မှာ ဒါကို အောက်ပါအတိုင်း ပြန်လည်ရေးသားထားပါက အကျိုးဆက်သကဲ့သို့ ကျွန်းပွားလာသည်:

var doAdd = new Function("iNum", "alert(iNum + 20)");
var doAdd = new Function("iNum", "alert(iNum + 10)");
doAdd(10);

ဒါကြောင်းကတည်းမှာ ဒါမှာ doAdd သတ္တိကို ပြောင်းလဲထားသည်။ ဖော်ထုတ်ထားသော အမည် သည် ဖော်ထုတ်ထားသော ပုဂ္ဂိုလ်ကို သို့မဟုတ် သတ္တိကို သို့ ရည်ရွယ်သည်။ ထို့နောက်ပိုင်းမှာ ဒါများစလုံး ပုဂ္ဂိုလ်ကို အသုံးပြု၍ တူညီသော ဖော်ထုတ်ထားသည် ပုဂ္ဂိုလ်ကို အသုံးပြုနိုင်ပါသည်။

var doAdd = new Function("iNum", "alert(iNum + 10)");
var alsodoAdd = doAdd;
doAdd(10);	//ထုတ်ဖော် "20"
alsodoAdd(10);	//ထုတ်ဖော် "20"

ဒါကြောင်းကတည်းမှာ ဒါမှာ doAdd သတ္တိကို ဖော်ထုတ်ထားသည်။ ထို့နောက် alsodoAdd ကို တူညီသော ဖော်ထုတ်ထားသည်။ ထိုနောက်ပိုင်းမှာ ဒါများစလုံး ပုဂ္ဂိုလ်ကို အသုံးပြု၍ ပုဂ္ဂိုလ်၏ ဖော်ထုတ်ထားသည်များ အတိုင်း အသုံးပြုနိုင်၍ အတူတူသော အကြောင်းရပ် - "20" ကို ထုတ်ဖော်နိုင်သည်။ အကြောင်းရပ်မှာ ဖော်ထုတ်ထားသော အမည် သည် ဖော်ထုတ်ထားသော ပုဂ္ဂိုလ်ကို သို့မဟုတ် သတ္တိကို သို့ ရည်ရွယ်သည် ဖြစ်သည်ဆိုလျှင် ဖော်ထုတ်ထားသော ပုဂ္ဂိုလ်ကို အခြား ဖော်ထုတ်ထားသော ပုဂ္ဂိုလ်သို့ ပေးပို့နိုင်ပါသလေး!

function callAnotherFunc(fnFunction, vArgument) {
  fnFunction(vArgument);
}
var doAdd = new Function("iNum", "alert(iNum + 10)");
callAnotherFunc(doAdd, 10);	//输出 "20"

在上面的例子中,callAnotherFunc() 有两个参数 - 要调用的函数和传递给该函数的参数。这段代码把 doAdd() 传递给 callAnotherFunc() 函数,参数是 10,输出 "20"。

注意:尽管可以使用 Function 构造函数创建函数,但最好不要使用它,因为用它定义函数比用传统方式要慢得多。不过,所有函数都应看作 Function 类的实例。

Function အရာတွေ အချိန်အား

အချိန်ကြား အရာတွေ သည် အချိန်ကြား အချိန်ကြား ဖြစ်သည်။ အချိန်ကြား အရာတွေ သည် အချိန်ကြား အချိန်ကြား ဖြစ်သည်။

ECMAScript က အချိန်အား အရာတွေ ကို အချိန်ကြား ကူညီထားသည်။ ဥပမာ:

function doAdd(iNum) {
  alert(iNum + 10);
}
function sayHi() {
  alert("Hi");
}
alert(doAdd.length);	//ပြန်ပေး "1"
alert(sayHi.length);	//ပြန်ပေး "0"

အကောင်းပိုင်ခံ doAdd() အရာတွေ သည် အချိန်အား ၁ ကို အသုံးပြုသည် အတွက် သည်။ sayHi() အရာတွေ သည် အချိန်အား အသုံးပြုခြင်း မရှိဘဲ ဖြစ်သည် အတွက် သည်။

အကြောင်းကြားသော် အချိန်ကြားအချိန်အား အချိန်အား ကူညီထားသော ECMAScript သည် အများဆုံး အချိန်ကြားအချိန်အား အချိန်အား ကူညီထားသည်။ အချိန်အား အချိန်အား အားဖြင့် အချိန်အား အချိန်အား ကူညီထားသည်။

Function အရာတွေ များ

Function အရာတွေ သည် အရာတွေ အား ကူညီထားသော valueOf() နှင့် toString() အမျိုးအစား များ ရှိ သည်။ အရာတွေ သည် အရာတွေ သည် အရာတွေ သည် ပြန်ပေးသည်။ အထူးသဖြင့် တုပ်ထွေးခြင်း အတွက် အသုံးပြုကြသည်။ ဥပမာ:

function doAdd(iNum) {
  alert(iNum + 10);
}
document.write(doAdd.toString());

အထက်အရာအား ရေးသားထားသော ကိုယ်စားပြုထားသည် doAdd() အကောင်းပိုင်ခံ အရာအား ပြန်ပေးသည်。ကိုယ်တိုင် ကြိုးစားကြည့်ချင်!