'Net ...'의 어디서나이 답변을 찾을 수 없습니다.함수 매개 변수를 변수로 다시 선언 하시겠습니까?
함수 매개 변수를 로컬 변수로 다시 선언하는 데 어떤 이유가 있습니까?
예 :
function(param1, param2) {
var param1, param2;
...etc...
}
나에게 매우 중복 보이지만 어쩌면 내가 모르는 뭔가가있어 ...?
감사합니다,
브라이언
'Net ...'의 어디서나이 답변을 찾을 수 없습니다.함수 매개 변수를 변수로 다시 선언 하시겠습니까?
함수 매개 변수를 로컬 변수로 다시 선언하는 데 어떤 이유가 있습니까?
예 :
function(param1, param2) {
var param1, param2;
...etc...
}
나에게 매우 중복 보이지만 어쩌면 내가 모르는 뭔가가있어 ...?
감사합니다,
브라이언
될 것입니다 함수 매개 변수로서 그것은 절대적으로 아무것도하지 않습니다. 전혀 쓸모가 없다. 변수의 값을 변경하지 않습니다.
이것은 내가 생각한 것입니다. 나는 다른 사람의 코드를 정리하고 있는데, 이것이 왜 필요하거나 심지어 유용 할 지에 대해서는 생각할 수 없다. 너 내 의심을 거의 확인 했어. 고마워. – DondeEstaMiCulo
@trinithis -이 대답이 모든 주요 브라우저에 해당되는지 알고 있습니까? – nnnnnn
그렇게 생각합니다. 나는 진절머리 나는 브라우저조차도 잘못 이해한다고 믿기 어렵다. –
종종이 필요하지만,이 경우에 유용 할 수 있습니다.
예를 몇: 함수에서 그 변수의 값을 수정할 수 있지만 원래 값 나중에 기능에서 무슨 알 필요가있는 경우
, 당신은 잘 할 것이다 복사본을 만들어 가지고 앞.
때로는 first_integer_in_product_list
과 같이 매우 유용한 설명이 포함 된 이름을 사용하는 것이 편리하지만 기능 내에 코드를 작성할 때는 i
으로 작업하는 것이 좋습니다.
OP는 변수를 다시 선언하고 새 값을 다시 할당하지 말 것을 요청했습니다. –
그래, 그들은 복사본을 만들거나 편리한 변수 이름을 지정하지 않고 단지 값을 사용하지 않고 다시 선언 할 때'var' 만 사용하고 있습니다. – DondeEstaMiCulo
로컬 변수를 매개 변수와 같은 이름으로 다시 선언해야하는 이유가 없습니다. 대부분의 언어는 이것을 허용하지 않지만 JavaScript는 거의 모든 것을 허용합니다.
사용자가 함수 호출에서 아무 것도 전달하지 않은 경우 유용합니다. 예를
function X(param1, param2){
param1 = param1 || 1; //set default values if param1 is nothing
param2 = param2 || {};
}
뿐만 귀하의 예제에서
, 당신은 함수의 매개 변수를 덮어, 그래서 선언 된 변수의 이름은 것과 같은 경우 그냥 같은
function X(){
var param1, param2;
...
}
OP는 var 키워드를 사용했습니다. –
예,하지만 내 예제에서는 var 키워드가 필요하지 않습니다. 왜냐하면 함수 인수가 파기 되었기 때문입니다. – YOU
또한 함수에 값을 전달하는 데 문제가 있습니다! –
S의 응답과 같이 벽에 무엇인가를해야하는 경우를 제외하고는 무엇이든 해를 끼치 지 않습니다. 피해야합니다. 읽기 쉬운 코드로 이어질 수 있으며 변수 범위에주의를 기울이지 않거나 이름을 잊어 버리면 스파게티 창고로 보낼 수 있습니다.
당신이 말하고있는 언어로 언급해야합니다. 대부분 같은 이름을 가진다면 오류 일 것입니다. 어떤 언어에서 그렇게 할 수있는 가장 큰 이유는 함수가 완료 될 때 즉시 파기하는 것이 아니라 지속 시간을 고정시키는 것과 같이 범위를 변경하는 것입니다.
사과드립니다.이 경우 자바 스크립트입니다. 내 예제에서와 같이'var'을 사용하면 AFAIK 범위가 변경되지 않습니다. 변수는 어디에서도 사용되지 않으며 다른 변수에도 복사되지 않습니다. 나는이 코드를 코드에서 꽤 보았습니다. 그래서 이것이 일종의 "속임수"인지 궁금해지기 시작했습니다 ...;) – DondeEstaMiCulo
자바 스크립트입니까? 그건 그렇고, 좋은 별명. – thomaspaulb
하하, 고마워! 그리고 네, 그것은 JS입니다. :) – DondeEstaMiCulo