js에는 생성자가 없지만 MDN 문서에서도 이 단어가 사용됩니다: https://developer.mozilla.org...
코드 new foo(...)가 실행될 때:
새 개체가 생성됩니다. foo.prototype.
에서 상속됩니다.
생성자 foo 被执行。执行的时候,相应的传参会被传入,同时上下文(this)会被指定为这个新实例。new foo 等同于 new foo()는 매개변수가 전달되지 않은 경우에만 사용할 수 있습니다.
생성자가 "객체"를 반환하면 이 객체가 전체 new出来的结果。如果构造函数没有返回对象,那么new결과를 대체합니다. 생성자가 개체를 반환하지 않으면 결과는 1단계에서 생성된 개체가 됩니다. ps: 일반적으로 생성자는 어떤 값도 반환하지 않지만 사용자가 이 반환 값을 재정의하려는 경우 다음을 선택할 수 있습니다. 덮어쓰려면 일반 객체를 반환하세요. 물론, 배열도 객체이기 때문에 배열을 반환하면 덮어쓰게 됩니다.
사실 js에는 '생성자'라는 용어가 있어서는 안 되고, 함수를 구성하는 방법으로 이해해야 합니다. 이는 어떤 함수라도 사용될 수 있고, 어떤 함수라도 '생성자'라고 부를 수 있다는 뜻입니다. 소위 "생성자"를 작성했을 때 일반 함수와 차이점을 발견하셨나요? 아니, 그냥 일반 함수일 뿐입니다. new
자바스크립트의 모든 기능은
new
关键字调用,它都可以被称作构造函数
만 사용하세요.new 키워드를 사용하여 함수를 호출하면 함수 내부에 개체가 암시적으로 선언된 다음 여기에 개체가 할당되고, new 키워드를 사용하여 저자의 책 메서드를 호출하면 마지막으로 this가 암시적으로 반환됩니다. , 이는 다음 프로세스와 동일합니다.
으아악여기 있는 o는 실제로 우리가 흔히 보는 이 물체입니다.
JavaScript에는 클래스나 생성자가 없습니다.
으아악new
를 사용하여 개체 만들기js에는 생성자가 없지만 MDN 문서에서도 이 단어가 사용됩니다: https://developer.mozilla.org...
ES6에 클래스가 추가되더라도 그것은 단지 구문상의 설탕일 뿐입니다:
으아악생성자의 개념을 잘못 이해하셨네요.
사실 js에는 '생성자'라는 용어가 있어서는 안 되고, 함수를 구성하는 방법으로 이해해야 합니다. 이는 어떤 함수라도 사용될 수 있고, 어떤 함수라도 '생성자'라고 부를 수 있다는 뜻입니다. 소위 "생성자"를 작성했을 때 일반 함수와 차이점을 발견하셨나요? 아니, 그냥 일반 함수일 뿐입니다.
위에서는 es6 화살표 기능을 제외합니다.new
js의 모든 함수는 생성자와 동일합니다(실제 ES6 화살표 함수 제외).
안녕하세요, 놀라운 js님!