>  기사  >  웹 프론트엔드  >  JavaScript에서 이름이 중복되는 함수 및 개체의 예

JavaScript에서 이름이 중복되는 함수 및 개체의 예

黄舟
黄舟원래의
2017-10-03 05:59:491268검색

최근 동료가 js에서 함수와 객체의 이름이 같으면 어떻게 될까요?라는 질문을 했습니다. 이 문제는 자세히 논의할 가치가 있으므로 이 글은 주로 자바스크립트에서 중복된 이름을 가진 함수와 객체에 대한 관련 정보를 소개합니다.

머리말

이 글은 자바스크립트에서 중복된 이름을 가진 함수와 객체에 대한 관련 내용을 주로 소개하고 참고와 학습을 위해 공유합니다. 아래에서는 별로 할 말이 없지만 자세한 내용을 살펴보겠습니다. 소개 .

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 엔진은 이를 선언과 할당의 두 부분으로 분할합니다. 선언은 맨 위에 배치되고 할당은 원래 위치에 유지됩니다.


- 선언된 변수는 다시 선언되지 않습니다.

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에는 두 가지 종류의 함수가 있습니다. 하나는 일반 함수이고 다른 하나는 함수 객체입니다. 다음은 실제로 익명 함수를 선언한 다음 함수의 init 메서드를 변수에 할당하는 "함수 개체"입니다.

var a = 100;
var a = function() {
 return "function";
}
console.log(a);
/* 
输出
function() {
 return "function";
}
*/
console.log(a()); //输出 "function"

함수는 내부 변수와 이름이 같습니다


일반 함수를 정의합니다. 즉, 창 변수 아래에 이름이 함수 이름이고 값이 주소인 키를 정의합니다. 기능의. 함수 내부의 이는 창 개체를 가리킵니다.

function a() {
 console.log(this); //输出 window{...}
 this.a = 1;  //即 window.a = 1,此时window下的function a已经被该变量覆盖了。
 var a = 5;  //下面的这几个变量都是局部变量,仅在花括号范围内有效。 
 a = 10;
 var v = "value"
 return "function";
}
console.log(a);  //输出 function a {...}
console.log(a()); //输出 "function"
console.log(a);  //输出 1
console.log(v);
/*
输出
Uncaught ReferenceError: v is not defined
 (anonymous function) @ mycolor.html:15
*/

요약🎜🎜🎜

위 내용은 JavaScript에서 이름이 중복되는 함수 및 개체의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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