ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript_javascript スキルにおける関数のオーバーロードについての深い理解

JavaScript_javascript スキルにおける関数のオーバーロードについての深い理解

WBOY
WBOYオリジナル
2016-05-16 16:40:271159ブラウズ

JavaScript には特殊なデータ型があります --- 関数型 JavaScript の各関数は関数型のインスタンスです。関数はオブジェクトであるため、関数名は実際には関数オブジェクトへのポインタであり、関数にバインドされません。

<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

同じ名前の関数が 2 つ宣言されていますが、後の関数が前の関数を上書きします。上記は次のコードと同等です。

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

2 番目の関数を作成すると、参照された最初の関数変数 sum が実際に上書きされます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。