ఇక్మాస్క్రిప్ట్ arguments ఆబ్జెక్ట్
- ముంది పేజీ ఫంక్షన్ సంక్షిప్త వివరణ
- తరువాత పేజీ ఫంక్షన్ ఆబ్జెక్ట్
arguments ఆబ్జెక్ట్
ఫంక్షన్ కోడ్లో, డెవలపర్స్ ప్రత్యేక ఆబ్జెక్ట్ arguments ఉపయోగిస్తారుపారామీటర్ పేరును తెలుపకుండాఅది అవి పొందుతాయి.
ఉదాహరణకు, sayHi() ఫంక్షన్లో, మొదటి పారామీటర్ మెసేజ్. arguments[0] ద్వారా కూడా ఈ విలువను పొందవచ్చు, అంటే మొదటి పారామీటర్ విలువ (మొదటి పారామీటర్ స్థానం 0, రెండవ పారామీటర్ స్థానం 1, ఇలా కొనసాగుతుంది).
అందువల్ల, పారామీటర్ పేరును తెలుపకుండా ఫంక్షన్ను పునఃరూపొందించవచ్చు:
function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); }
检测参数个数
还可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length 即可。
ఫంక్షన్ ప్రారంభంలో పారామిటర్ల సంఖ్యను అవుట్పుట్ చేయడానికి కోడ్ దిశాంతి అవుతుంది:
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
ఈ కోడ్ చేయబడిన మొత్తం సంఖ్యలు క్రమంగా "2"、"0" మరియు "1" అవుతాయి.
ప్రకటన:ఇతర ప్రోగ్రామింగ్ భాషలకు విరుద్ధంగా, ECMAScript ఫంక్షన్కు పాసుచేసిన పారామిటర్ల సంఖ్యను పరిగణించదు. డెవలపర్లు నిర్వహించిన ఫంక్షన్లు ఏ పారామిటర్ల సంఖ్యను స్వీకరించగలవు (నెట్స్కేప్ దస్తావేజు ప్రకారం అత్యధికంగా 255 పారామిటర్లు స్వీకరించగలవు), ఏ ప్రత్యేక ప్రతిక్రియ లేదు. కొన్ని పారామిటర్లు లేకపోతే ఫంక్షన్కు undefined తీసుకువస్తాయి, అదనపు పారామిటర్లు అవగాహనలేదు.
ఫంక్షన్ రీలోడ్ పోలిమర్ఫిజమ్
arguments ఆబ్జెక్ట్ ద్వారా ఫంక్షన్కు పాసుచేసిన పారామిటర్ల సంఖ్యను పరిగణించి, ఫంక్షన్ రీలోడ్ అనుసంధానించవచ్చు:
function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 5); } else if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); //అవుట్పుట్ "15" doAdd(40, 20); //అవుట్పుట్ "60"
ఒక మాత్రమే పారామిటర్ ఉన్నప్పుడు, doAdd() ఫంక్షన్ పారామిటర్కు 5 జోడిస్తుంది. రెండు పారామిటర్లు ఉన్నప్పుడు, రెండు పారామిటర్లను జోడించి అవి యొక్క సమానతను తిరిగి ఇవ్వబడుతుంది. కాబట్టి, doAdd(10) అవుట్పుట్ అవుతుంది "15", మరియు doAdd(40, 20) అవుట్పుట్ అవుతుంది "60".
రీలోడ్ అని మంచిది కాదు, కానీ ఈసాగించగలిగేది ఎక్మాస్క్రిప్ట్ ఈ పరిమితిని అవగాహనకి తీసుకువస్తుంది.
- ముంది పేజీ ఫంక్షన్ సంక్షిప్త వివరణ
- తరువాత పేజీ ఫంక్షన్ ఆబ్జెక్ట్