변수를 한 함수로 전달한 다음 다른 함수로 값을 반환하는 방법은 무엇입니까?
변수는 값을 저장하는 작은 컨테이너 일뿐입니다. 변수를 함수에 전달할 때, 실제로 그 변수의 값을 함수에 전달합니다. 귀하의 경우 그래서 :
passfrom(curpage);
및
passfrom(1);
은 동일합니다.
함수 내에서 변수 이름은이 값에 액세스하는 데 사용됩니다. 이 이름은 함수 외부의 값에 첨부 된 이름과 완전히 독립적입니다 (이름이 있더라도). 그들은 별칭과 비슷합니다. 변수를 변수와 구별하기 위해 매개 변수라고 부릅니다. 그래서 하나
function passfrom(currpage) {
var newpage = parseInt(currpage)*1000;
return newpage;
}
이 하나
function passfrom(myownname) {
var newpage = parseInt(myownname)*1000;
return newpage;
}
정확히 동일합니다. 우리가 실제로 무슨 쓰는 것 인 경우에, 우리는이를 얻을 것 :
// var xyz = passfrom(currpage);
var xyz = value-of(passfrom(value-of(currpage))
것은 그래서 당신은 어떤 함수에 값을 전달해야 할 일은, 그것이 가능한 이러한 매개 변수의 이름이 있는지 확인하는 것입니다 해당 값을 사용할 수 있습니다 :
function passto(myalias) {
console.log(myalias);
}
passto(xyz); // writes 1000 to the console.
위의 내용은 귀하의 질문에 대한 실제 답변입니다.
는 조금 더 복잡한 일을하려면 고려해야 할 두 가지 더있다 :
범위. 매개 변수 이름은 함수 내에서만 작동합니다. 변수가 함수 외부의 변수 이름과 같으면 외부 변수가 매개 변수에 의해 숨겨집니다. 따라서 :
var currpage = 1;
function plusOne(currpage) { curpage += 1; }
plusOne(currpage);
console.log(currpage); // 1, as the variable currpage was hidden
function plusTwo(othername) (currpage += 2; }
plusTwo(currpage);
console.log(currpage); // 3, as currpage was not hidden
이 모두는 문자열, 정수 및 기타 간단한 유형에 적용됩니다. 보다 복잡한 유형을 처리 할 때 매개 변수 이름은 함수에 전달 된 값의 별명이 아니며 원래 값의 위치를 나타냅니다. 자동으로 함수 외부 변수에 일어날 것입니다 당신이 함수 내 변수와는 어떤 경우에 그래서 :
var arr = [ 0, 1 ];
function plusOne(somearr) { somearr[0] += 1; }
plusOne(arr);
console.log(arr[0]); // 1, as somearr references arr directly
이 "패스에 의해 가치"라고하고 "통과에 의해 참조."
출처
2013-06-12 17:42:47
Jer
'typeof NaN'은 숫자 여야합니다. 그리고 두 번째 'var newcurr'에는 두 번째'var'가 필요 없습니다. 여하튼 :'passto()'는'NaN'을 반환합니다. –
passto()에서 passfrom()에 아무 것도 전달하지 않으면 숫자를 전달해야합니다. – dandavis
이미 말했지만 다시 말하면 :'var newcurr = passfrom();''<-'당신은'passfrom'에 값을 전달하지 않습니다. –