찾다

 >  Q&A  >  본문

javascript - 이것은 객체 리터럴 함수가 아닌가요? 왜 새로운 초기화가 필요합니까?

이것은 생성자가 아니라는 것을 기억합니다. 왜 this와 new가 생성자와 동일하게 사용됩니까?

淡淡烟草味淡淡烟草味2746일 전897

모든 응답(4)나는 대답할 것이다

  • 学习ing

    学习ing2017-07-05 10:54:40

    자바스크립트의 모든 기능은 new 关键字调用,它都可以被称作 构造函数만 사용하세요.

    new 키워드를 사용하여 함수를 호출하면 함수 내부에 개체가 암시적으로 선언된 다음 여기에 개체가 할당되고, new 키워드를 사용하여 저자의 책 메서드를 호출하면 마지막으로 this가 암시적으로 반환됩니다. , 이는 다음 프로세스와 동일합니다.

    으아악

    여기 있는 o는 실제로 우리가 흔히 보는 이 물체입니다.

    회신하다
    0
  • 高洛峰

    高洛峰2017-07-05 10:54:40

    JavaScript에는 클래스나 생성자가 없습니다.

    으아악

    new를 사용하여 개체 만들기

    으아악

    js에는 생성자가 없지만 MDN 문서에서도 이 단어가 사용됩니다: https://developer.mozilla.org...

    코드 new foo(...)가 실행될 때:

    • 새 개체가 생성됩니다. foo.prototype.

    • 에서 상속됩니다.
    • 생성자 foo 被执行。执行的时候,相应的传参会被传入,同时上下文(this)会被指定为这个新实例。new foo 等同于 new foo()는 매개변수가 전달되지 않은 경우에만 사용할 수 있습니다.

    • 생성자가 "객체"를 반환하면 이 객체가 전체 new出来的结果。如果构造函数没有返回对象,那么new결과를 대체합니다. 생성자가 개체를 반환하지 않으면 결과는 1단계에서 생성된 개체가 됩니다. ps: 일반적으로 생성자는 어떤 값도 반환하지 않지만 사용자가 이 반환 값을 재정의하려는 경우 다음을 선택할 수 있습니다. 덮어쓰려면 일반 객체를 반환하세요. 물론, 배열도 객체이기 때문에 배열을 반환하면 덮어쓰게 됩니다.

    ES6에 클래스가 추가되더라도 그것은 단지 구문상의 설탕일 뿐입니다:

    으아악

    회신하다
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:54:40

    생성자의 개념을 잘못 이해하셨네요.

    사실 js에는 '생성자'라는 용어가 있어서는 안 되고, 함수를 구성하는 방법으로 이해해야 합니다. 이는 어떤 함수라도 사용될 수 있고, 어떤 함수라도 '생성자'라고 부를 수 있다는 뜻입니다. 소위 "생성자"를 작성했을 때 일반 함수와 차이점을 발견하셨나요? 아니, 그냥 일반 함수일 뿐입니다. new

    위에서는 es6 화살표 기능을 제외합니다.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:54:40

    js의 모든 함수는 생성자와 동일합니다(실제 ES6 화살표 함수 제외).
    안녕하세요, 놀라운 js님!

    회신하다
    0
  • 취소회신하다