Javascriptの中のargmentsと重載の紹介
2124 ワード
言語の設計が間違っているので、アーグメンントは配列として扱われてもいいです.
ここでのargments変数は、同様の配列のインターフェースを提供する.ここのargmentsの可変パラメータのために、私達はこれを利用して面白いものを作って、例えば重い荷物を載せます.
Javscript重載
stackvoerflowでは、重積載に関する問題がありますので、最初の答えがあります.
Javascript argmentsは配列ではありません.
argmentsは私達に見られるようにずっと行列ではなく、時には違うかもしれません.
argments.callee
Reference to the currently executing function.
argments.caller
Reference to the function that invoked the currently executing function.
argments.length
Reference to the number of argments passed to the function.
function zero () {
console.log(arguments[0]);
}
あります
function zero () {
for(var i=0;i console.log(arguments[i]);
}
}
それはJavascriptの事実を利用しています.すなわちJavascです.ここでのargments変数は、同様の配列のインターフェースを提供する.ここのargmentsの可変パラメータのために、私達はこれを利用して面白いものを作って、例えば重い荷物を載せます.
Javscript重載
stackvoerflowでは、重積載に関する問題がありますので、最初の答えがあります.
if (typeof friend === "undefined") {
} else {
}
もう一つの答えは
switch (arguments.length) {
case 0:
//Probably error
break;
case 1:
//Do something
break;
case 2:
default: //Fall through to handle case of more parameters
//Do something else
break;
}
ただこのような方式は本当に面白くなくて、まさか私達の関数は最後にこのようなになりますか?
function zero1 (){
console.log('arguments 1')
};
function zero2 (){
console.log('arguments 2')
};
function zero () {
if(arguments.length == 1){
zero1();
} else{
zero2();
}
}
本当に全然面白くないです.switch.caseを変えても、みっともないです.Javascript argmentsは配列ではありません.
argmentsは私達に見られるようにずっと行列ではなく、時には違うかもしれません.
function hello(){
console.log(typeof arguments);
}
ここではargmentsのタイプはオブジェクトです.配列のタイプもオブジェクトですが、行列に変換できます.
var args = Array.prototype.slice.call(arguments);
しかしこれはまた、配列ではなく、Arayの唯一の属性であるlengthを持つことを示している.これ以外にもargments.callee
Reference to the currently executing function.
argments.caller
Reference to the function that invoked the currently executing function.
argments.length
Reference to the number of argments passed to the function.