2014-03-04 1 views
3

나는이 사용 보았다 : 정확히return new function()은 무엇입니까? 자바 스크립트? JS 코드에서

function doStuff(selector) { 
    /* Stuff to do with selector */ 
} 

var q = function(selector) { 
    return new doStuff(selector); 
} 

일어나고은 무엇입니까? return new은 정말 무엇을하고 있습니까? 그것은 다른 함수에 인수를 전달하는 것처럼 보이지만, 누군가가 프로세스를 통해 나를 걸을 수있을 정도로 친절합니까?

모든 도움을 주시면 감사하겠습니다.

+1

코드에서 익명 함수는 [새 인스턴스]를 반환 (https://developer.mozilla.org/ ko-kr/docs/Web/JavaScript/Guide/Working_with_Objects # Using_a_constructor_function)을 참조하십시오. – Teemu

+0

return과 동일 함 새 Array(); 그러나 이번에는 함수 객체입니다. – Kalzem

+0

@BabyAzerty -'Array()'의 내부 구조가 실제로 보이지 않기 때문에 (Array는'new'를 사용하든 그렇지 않든간에 Array가 여러 가지 일을하기 때문에) 별로 도움이되지 않습니다. – Quentin

답변

4

새 키워드로 함수를 호출 할 때. 다음 일어날 것이다

  • new 객체가 메모리
  • 그 오브젝트의 범위가 함수에 전달 될 생성 될 것이다; 따라서 this 키워드는 해당 객체를 참조합니다.
  • 새로 생성 된 개체가 반환됩니다.

그래서 본질적으로 JavaScript로 인스턴스를 만드는 방법입니다. 새 키워드로 함수를 호출해야합니다. 그렇게 할 때 함수를 생성자라고합니다.

예에서 q 함수는 doStuff 메서드의 인스턴스를 반환합니다. 명명 규칙이 올바르지 않더라도 마음에 드십시오.

생성자가 동사가 아니라 명사해야하며, 그들이 파스칼의 경우에 있어야하지 낙타의 경우

관련 문제