JS関数の定義は、正式なパラメーター名を指定できます。このパラメーターは、関数が呼び出される場合、このデータ構造の定義時に指定するすべてのパラメーターが格納されます方法。言い換えれば、JSのすべての関数は無限のパラメーターをサポートし、データ型は弱いタイプであるため、名前を除いてJS関数には方法の違いはありませんか?
常に方法があります。JavaScriptで特別なオブジェクト引数を使用して、関数の過負荷をシミュレートできます。それを使用して、過負荷を区別するための着信パラメーターの数またはタイプを決定します。
1.パラメーターの数に従ってリロードします
JS着信パラメーターの数を決定するには、引数属性属性によって判断できます。
コードコピーは次のとおりです。
<script type = "text/javascript">
関数add(){
if(arguments.length == 1){
アラート(引数[0] + 10);
}
else if(arguments.length == 2){
アラート(引数[0] +引数[1]);
}
}
//関数呼び出し
追加(10);
追加(10、20);
</script>
2。パラメータータイプに従ってリロードします
変数タイプを判断するには、次の3つの方法があります。
1. typeofステートメントを使用して変数タイプを判断すると、typeofステートメントはタイプに対応する文字列を返します。
2。instanceofステートメントを使用して変数タイプを判断すると、intanceofステートメントがtrue/falsを返します。
3。コンストラクター属性を使用して、変数の構築に使用されるコンストラクターリファレンスを返す変数タイプを決定します。
比較表:TypeOFを使用することで特定のタイプを正確に決定できないため、コンストラクターを使用して判断を下すことがわかります。
typeof | 弦 | 番号 | 物体 | 関数 | ブール | 物体 | 物体 |
コンストラクタ | 弦 | 番号 | 物体 | 関数 | ブール | 配列 | ユーザー定義 |
コードコピーは次のとおりです。
<script type = "text/javascript">
関数add()
{{
if(arguments.length == 0)return 0;
var sum = 0;
for(var i = 0; i <arguments.length; i ++){
if(arguments [i] .constructor == number){
//
//または変更:if(typeof(arguments [i])== "番号")
sum += arguments [i];
}
}
返品額;
}
//関数呼び出し
アラート(追加(10));
アラート(追加(10,20));
</script>