ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で重複した名前を持つ関数とオブジェクトの例

JavaScript で重複した名前を持つ関数とオブジェクトの例

黄舟
リリース: 2017-10-03 05:59:49
オリジナル
1296 人が閲覧しました

最近、同僚が質問しました。js で関数とオブジェクトが同じ名前を持つ場合はどうなりますか?この問題については詳しく説明する必要があるので、この記事では主に JavaScript の名前が重複している関数とオブジェクトに関する情報を紹介します。必要な方は一緒に見てみましょう。

はじめに

この記事では、主に JavaScript の重複した名前を持つ関数とオブジェクトに関する関連コンテンツを紹介し、参考と学習のために共有します。以下では多くのことを説明しません。導入 。

JavaScript では変数の繰り返し宣言が許可されており、後の宣言は前の宣言をオーバーライドします。


var a = 1;
var a = 'x';
console.log(a);
//输出'x'
ログイン後にコピー

JavaScript では関数を繰り返し定義できます。

JavaScript にはオーバーロードの概念がありません。関数は名前に基づいて区別されるだけです。


の後に定義された同名の関数は、パラメータに関係なく、前の関数を上書きします。


function test() {
 console.log("test");
}
test(); //输出 "test arg0 + undefined"

function test(arg1) {
 console.log("test arg" + arguments.length + " + " + arg1);
}
test(1,2); //输出 "test arg2 + 1"
ログイン後にコピー

実際のパラメータの数が仮パラメータよりも少ない場合、残りのデフォルトの割り当ては未定義ですが、渡される実際のパラメータが仮パラメータよりも多い場合は、それらがすべて渡されます。対応関係はありません 仮引数は参照できます(引数を使用して残りの引数を取得できます)

function test(arg1) {
 for(var i=0; i<arguments.length; i++) {
 console.log(arguments[i]);
 }
}
test(1,2); //输出 1 2
ログイン後にコピー

変数が関数と同じ名前の場合、その変数は有効になります


これには、変数と関数の事前解析が含まれます:

- 変数宣言は先頭に配置され、関数宣言も先頭に配置され、変数の前に宣言されます。

- 変数の宣言と代入ステートメントが一緒に書かれている場合、JS エンジンは変数を宣言と代入の 2 つの部分に分割します。宣言は先頭に配置され、代入は元の位置に残ります。


- 宣言された変数は再度宣言されません。

var a = 100;
function a() {
 return "function";
}
console.log(a); //输出 100
console.log(a()); 
/*
报错
Uncaught TypeError: a is not a function
 (anonymous function) @test.html:9
*/
ログイン後にコピー

JSには通常の関数と関数オブジェクトの2種類の関数があります。以下は「関数オブジェクト」です。これは実際に無名関数を宣言し、関数の init メソッドを変数に割り当てます。

var a = 100;
var a = function() {
 return "function";
}
console.log(a);
/* 
输出
function() {
 return "function";
}
*/
console.log(a()); //输出 "function"
ログイン後にコピー
関数は内部変数と同じ名前を持っています


通常の関数を定義します。つまり、ウィンドウ変数の下に、名前が関数名で値がアドレスであるキーを定義します機能の。関数内のこれは window オブジェクトを指します。

りー

概要🎜🎜🎜

以上がJavaScript で重複した名前を持つ関数とオブジェクトの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート