js에서 함수와 객체의 이름이 같으면 어떻게 되나요? 이 문제는 자세히 논의할 가치가 있습니다. 이 기사에서는 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 엔진은 이를 선언과 할당의 두 부분으로 분할합니다. 선언은 맨 위에 배치되고 할당은 원래 위치에 유지됩니다.
- 선언된 변수는 다시 선언되지 않습니다.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 */
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!