> 웹 프론트엔드 > JS 튜토리얼 > new function(){}과 function(){}()_js 객체 지향 간의 차이점에 대한 자세한 설명

new function(){}과 function(){}()_js 객체 지향 간의 차이점에 대한 자세한 설명

WBOY
풀어 주다: 2016-05-16 19:05:37
원래의
1257명이 탐색했습니다.

시나리오 1:
var yx01 = new function() {return "center of Circle"};
alert(yx01);
시나리오 1 코드를 실행하면 "[object object]"가 반환됩니다. 이때 코드는 다음과 같습니다.

function anonymous class(){
return "center of Circle"
var yx01 = new anonymous class( );
alert(yx01); us 시나리오 1의 코드를 다음과 같이 변경합니다.

var yx01 = new function() {return new String("center of the Circle")}; 🎜>alert(yx01);
실행하면 "원의 중심"이 반환됩니다.

new 표현식 뒤의 생성자가 참조 객체(배열, 객체, 함수 등)를 반환하는 한, new가 생성한 익명 객체를 덮어씁니다(반환 없이). 실제로는 원래 유형을 정의하지 않은 상태로 반환하고 new
에 의해 생성된 익명 객체를 반환합니다. 왜냐하면 new String은 문자열 리터럴이 아닌 객체를 구성하고 new String(x)가 매개변수를 취하면 경고가 표시되기 때문입니다. 그것이 x를 반환할 때. 따라서 yx01은 새 String("원의 중심") 개체를 반환하고 경고 yx01은 "원의 중심"을 표시합니다.

시나리오 2:

var yx02 = function() {return "center of Circle"}();
alert(yx02); of Circle"이 표시됩니다. , 이때 코드는 다음과 같습니다.

var anonymous function = function() {return "center of Circle"};
yx02 = anonymous function();
alert(yx02); 당연히 yx02는 익명 함수의 실행 결과 값을 반환합니다. 즉, yx02는 "원의 중심"입니다.

물론 익명 함수의 실행 결과가 익명 객체일 수도 있습니다. 특정 공통 애플리케이션에 대해서는 "Javascript의 모듈 패턴

" 을 참조하세요.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿