>웹 프론트엔드 >JS 튜토리얼 >JavaScript_javascript 기술의 함수 오버로딩에 대한 심층적인 이해

JavaScript_javascript 기술의 함수 오버로딩에 대한 심층적인 이해

WBOY
WBOY원래의
2016-05-16 16:40:271153검색

JavaScript에는 특별한 데이터 유형이 있습니다---Function 유형 JavaScript의 각 함수는 Function 유형의 인스턴스입니다. 함수는 객체이므로 함수 이름은 실제로 함수 객체에 대한 포인터이며 함수에 바인딩되지 않습니다.

<pre name="code" class="html">function sum(num1,num2) 
{ 
return num1 +num2; 
} 

alert(sum(10,10)); //20 
var other = sum; 
alert(other(10,10)); //20 
sum = null; 
alert(other(10,10)); //20

함수 이름을 함수에 대한 포인터로 사용하면 ECMAScript에 함수 오버로드 개념이 없는 이유를 이해하는 데 도움이 됩니다.

function sum(num1) 
{ 
return num1 +100; 
} 
function sum(num1) 
{ 
return num1 +200; 
} 
alert(sum(200)); //400

동일한 이름의 함수 두 개를 선언했지만 후자의 함수가 이전 함수를 덮어쓰는 것은 다음 코드와 동일합니다

function sum(num1) 
{ 
return num1 +100; 
} 
sum = function(num1) 
{ 
return num1 +200; 
} 
alert(sum(200)); //400

두 번째 함수를 생성할 때 참조된 첫 번째 함수 변수 sum이 실제로 덮어쓰여집니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.