자바 스크립트에서 fn ()과 새로운 fn ()의 근본적인 차이점


12

새로운 키워드를 사용하거나 사용하지 않고 함수를 호출하면 Javascript가 어떻게 다릅니 까? 나는 모든 것이 다른 것을 의미합니까?

testFn() vs new testFn()

답변:


13

new새로운 (빈) 객체를 생성하여 설정 this한 다음 객체를 생성하는 역할을하는 함수를 호출합니다 ( this. something 조작 ). new키워드 없이 동일한 함수를 호출하면 this현재 의미 하는대로 작동 할 수 있습니다 .


이것에 더 많은 것이 있습니까?
akp

@akp 아니 정말 간단합니다. 언급되지 않은 것을 제외하고는 함수가 명시 적으로 참조 유형을 리턴하면이 유형이 리턴되고 new작성된 오브젝트가 낭비 된다는 것입니다 .
Esailija

2
를 사용 new하면 새 객체의 프로토 타입이 새 객체가 전달되는 첫 번째 함수의 프로토 타입을 참조하도록 설정됩니다. 나는 다른 방법을 통해 행동이 합법적으로 달성 될 수 있다고 생각하지 않습니다.
supercat

당신 말이 맞아요
user281377

1

이러한 변형은 구문 적으로 다릅니다. "새"변형을 사용하면 함수가 생성자라고 가정합니다. "new"가없는 변형 은 생성자 가 아니라고 가정합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.