2013-07-16 3 views
0

HTML을자바 스크립트 함수 정의와 함수 호출 차이

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
</head> 
<body> 
    <input type='button' name='test' id='test' value='Click'/> 
</body> 
</html> 

자바 스크립트 내가 그것을 내가 오직 하나 개의 인자를 가지고 함수 호출에 10.But 경고, 클릭 버튼을 클릭 여기에

$(document).ready(function(){ 
    $('#test').on('click',function(){ 
    var a = 10; 
    testFunction(a); 
    }); 
}); 

function testFunction(a,b){ 
    alert(a); 
} 

함수 정의 나는 두 개의 인수가있다. 왜 인수의 수에 관한 오류를 생성하는 대신 값을 알려주 는가?

+0

난 그냥이 링크를 [두고 HTTP : //javascript.info/tutorial/arguments] 함수 인수에 대한 자세한 내용을 볼 수 있습니다. 한 번 더 –

+0

. testFunction (a, b, c) 함수처럼 하나 이상의 함수를 추가했다면 { alert (a); }'. 그리고 방화범이 끌린 벌레로 디버그를 시도하십시오. 첫 번째 기능 대신이 기능이 실행됩니다. – Nithesh

답변

0

JS의 인수는 동적입니다. 인수가 정의되었지만 전달되거나 함수 내에서 사용되지 않으면 오류가 발생하지 않습니다. 당신은 적어도 2 인자가 있는지 확인하려면이 작업을 수행 할 수 있습니다 : 당신은 심지어 arguments 의사 배열을 함수에 정의되지 않은 인수를 사용할 수 있습니다

function test(a,b) { 
    if (arguments.length < 2) { 
    // throw error, or return false, or something else 
    } 
} 

. 인수의 수는 함수를 호출 할 때 결정되며 작성시 결정되지는 않습니다.

0

이렇게하지 않으면 인수가 필요하지 않습니다. JavaScript는 dynaic이므로 사용되지 않는 인수는 무시됩니다. 자바 스크립트에 인수가 선택이기 때문에

function testFunction(a,b){ 
    if (b == undefined) throw new Error("Variable b in testFunction is undefined"); 
    alert(a); 
} 
2

즉. 이 자바 스크립트에서

function testFunction(a = undefined,b = undefined){ 
    alert(a); 
} 
+0

+1 좋은 답변 .. – Nithesh

0

을 것 의사 코드에 있도록

그들은 함수 정의에 나와있는 인수가 명명 된 인수입니다 디폴트 값을 가지고있다. 그러나 선택 사항입니다. 그래서 다음과 같이 함수를 호출 전적으로 가능하다 : 인수 b의 값이 undefined됩니다 첫 번째 경우에

testFunction(1); 
testFunction(1, 2); 
testFunction(1, 2, 3); 

. 세 번째 경우에는 값 3을 수신하는 변수가 없습니다. 그러나 여전히 있습니다. 함수에 전달 된 모든 값은 arguments 배열을 통해 액세스 할 수 있습니다. 따라서 arguments[2]은 값 3을 포함합니다.

이러한 유연성을 감안할 때 단점도 있습니다. 다른 많은 프로그래밍 언어 나 스크립팅 언어와 달리 Javascript에는 기능 다형성이 없습니다. 즉, 같은 이름의 함수가 하나만있을 수 있습니다. 그래서 당신은 다음과 같이 두 기능을 정의 할 수 없습니다 :

function testFunction(a, b) { ... } 
function testFunction(a, b, c) { ... } 

당신은 모든 인터넷을 통해 자바 스크립트 함수에 대한 자세한 정보를 찾을 수 있지만,이 페이지는 좋은 시작이다 : http://javascript.info/tutorial/arguments