js new 와 return
기본적으로 함수 의 반환 값 은 undefined (즉, 반환 값 이 정의 되 지 않 음) 입 니 다.
new 연산 자
js 의 new 연산 자 는 자바 처럼 새로운 대상 을 얻 을 수 있 습 니 다. 예 를 들 어:
function Person() {
this.heart = 'red';
}
let per = new Person();
console.log(per.heart); // red
그렇다면 new 때 내부 에 무슨 일이 일 어 났 을 까?
우 리 는 위조 코드 로 시 뮬 레이 션 을 해 보 자.
new Person() = {
var obj = {};
obj.__proto__ = Person.prototype;
var result = Person.call(obj);
return typeof result === 'object' ? result : obj;
}
이상 은 new 연산 자의 운영 체제 간략 판 입 니 다.
return 과 의 화학 반응
new 의 운영 체 제 를 대체적으로 이해 한 후에 답 이 나 오 려 고 한다.
만약 에 우리 의 구조 함수 return 이 간단 한 기본 데이터 형식 (undefinded, 숫자, 문자열, 불) 이 라면 new 가 원 하 는 대상 을 정확하게 만 들 수 있 습 니 다.
구조 함수 return 이 대상 (기본 데이터 형식의 포장 대상, 예 를 들 어 Object ('OK') 등) 이 라면 우리 new 는 생각 하 는 대상 을 얻 지 못 합 니 다.
다음 인 스 턴 스 를 붙 입 니 다:
// :https://www.jianshu.com/p/ed692646ee7c
function User( name, age){
this.name = name;
this.age = age;
// return; // this
// return null; // this
// return this; // this
// return false; // this
// return 'hello world'; // this
// return 2; // this
// return []; // [], user.name = undefined
// return function(){}; // function, this, user.name = undefined
// return new Boolean( false); // boolean, this, user.name = undefined
// return new String( 'hello world'); // string, this, user.name = undefined
// return new Number( 32); // number, this, user.name = undefined
}
var user = new User(" ",20)
console.log(user);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.