node.js
에 함수를 만들려고합니다. 다음은 관련 코드이며, 함수 호출시 오류가 발생합니다.오류 : 생성자를 호출 할 때 새 접두사가 없습니다.
답변
Node.js를에서, 함수 이름은 낙타 맡았다하고, 소문자로 시작해야한다. 대문자로 함수를 시작하면 JSHint는 메소드가 아니라 생성자로 간주합니다.
실제로 이것은 JSHint에 의해 생성되는 오류이지만 코드는 올바르게 실행됩니다. 이 오류를 발생시키는 The option in JSHint, newcap
은 실제로 감가 상각되며이를 사용하지 않도록 설정하는 것이 좋습니다.
이 옵션을 JSHint에 짝수 이유에 관련 정보 :
이 옵션은 생성자 함수의 이름을 투자 할 필요합니다.
new
연산자와 함께 사용하려는 함수를 대문자로 사용하는 것은 프로그래머가 생성자 함수를 다른 함수 유형과 시각적으로 구별하여이를 사용할 때 실수를 찾아내는 데 도움이되는 규칙입니다.아무 브라우저 나 환경에서도 코드가 깨지지는 않지만 코드를 읽으면 알아 내기가 더 어려울 것입니다. 기능이
new
과 함께 사용되었거나 사용되지 않아야하는 경우입니다. new와 함께 사용하려는 함수가 new와 함께 사용될 때this
은 새 객체 대신 전역 객체를 가리키기 때문에 중요합니다.
감사합니다 frnd ... 나는이 간단한 일을 위해 나의 반나절을 낭비했다. ..! – Anup
이것은 단순히 사실이 아닙니다. Javascript는 대소 문자를 구별합니다. 그러나 대문자로 시작하는 경우 Javascript는 함수를 다르게 처리하지 않습니다. 대문자로 시작하기 때문에 할당 된 특별한 동작이 없습니다. 대/소문자를 사용하는 스타일 규칙이 있지만 언어를 사용하는 방법에 대한 순수한 스타일 의견입니다. – jfriend00
node.js 및 관련 linting은 오류를 발생시키고 코드를 올바르게 처리하지 않습니다. 그것이 주로 스타일 의견 인 것은 사실이지만, node.js는 당신이 그들의 스타일에 따르기를 기대합니다. 노드 JavaScript가 일반 JavaScript가 아닌 node.js라는 것이 더 명확하게 명시되어야합니다. – Claies
왜 그런지는 모르겠지만 그 오류는 new ReplacePlaceholders();
일을하는 것이 좋습니다. 비록, 당신은 다음과 같은 것을 고려할 수 있습니다 :
function ReplacePlaceholders(templateName, receiverEmail, dataPlaceholders) {
return 'success';
}
exports.sendMailMsg = ReplacePlaceholders;
언급 한 오류 메시지는 런타임 오류가 아닌 JSHint 오류 메시지입니다.
jshint expects the new 'prefix' for functions
JSHint 객체 정의로 대문자로 시작하는 기능을 기대 : 여기에 대한 논의가있다. 오류를 무시하거나 JSHint에서 비활성화하거나 함수의 이름을 변경하여 소문자로 시작하도록 할 수 있습니다.
- 1. 생성자를 호출 할 때 때 연산자 함수
- 2. C++ 직접 생성자를 호출 할 수 없습니다.
- 3. 친구 클래스의 생성자를 호출 할 수 없습니다.
- 4. 슈퍼 생성자를 호출 할 때 리소스를 시도하십시오
- 5. ArrayList를 사용하여 생성자를 호출 할 때
- 6. Webresource 이름에 C# 플러그인을 배포 할 때 유효한 접두사가 없습니다.
- 7. 는 기본 생성자를 호출 할 수 없습니다 명시 적으로
- 8. 오류 : "속성에 안드로이드 네임 스페이스 접두사가 없습니다.",
- 9. 벡터의 크기를 조정할 때 객체 생성자를 호출 할 것입니다
- 10. 생성자를 호출 할 수 있습니까?
- 11. Flex ActionScript 생성자를 호출 할 때 Is()가 요청 되었습니까?
- 12. '생성자를 찾을 수 없습니다 ....'오류
- 13. 생성자를 호출 할 때 제네릭 형식이 필요하지 않은 이유는 무엇입니까?
- 14. 오류 "생성자를 찾을 수 없습니다"
- 15. FETCH_CLASS를 사용한 PDO 오류 : 일반 오류 : 클래스 생성자를 호출 할 수 없습니다.
- 16. 상위 생성자를 호출 할 때 []에 데이터를 보내는 이유는 무엇입니까?
- 17. 생성자를 호출 할 때 익명 하위 개체를 참조하는 방법은 무엇입니까?
- 18. 부모 생성자를 호출 할 때 치명적인 오류가 발생하는 이유는 무엇입니까?
- 19. joomla에서 새 파일을 호출 할 수 없습니다.
- 20. 생성자를 찾을 수 없습니다.
- 21. Gson : 클래스에 대해 no args 생성자를 호출 할 수 없습니다.
- 22. Monogame은 단위 테스트에서 Game 생성자를 호출 할 수 없습니다.
- 23. C++ 클래스에서 상속받은 struct에 올바른 생성자를 호출 할 수 없습니다.
- 24. 스칼라가있는 GSON - scala.collection.immutable.Map에 대한 인수없는 생성자를 호출 할 수 없습니다.
- 25. 기본 생성자를 호출 할 때 초기화 메서드 재사용
- 26. 생성자를 다시 호출 할 때 객체의 C++ private 멤버가 수정되었습니다.
- 27. 스칼라에서 기본 생성자를 호출 할 때 혼동 스럽습니다
- 28. 스칼라 보조 생성자를 호출 할 때 새로 필요합니까?
- 29. 리플렉션에서 생성자를 호출 할 때 다른 C# 오브젝트 인스턴스를 얻습니다.
- 30. joinLeft 오류 : 생성자를 예상 유형으로 인스턴스화 할 수 없습니다.
'ReplacePlaceholders()'가'exports.sendMailMsg'와 같은 범위에 없거나'exports'가 객체가 아닌 한, 여기에 보여준 코드에는 아무런 문제가 없습니다. 어떤 구체적인 오류가 있습니까? – jfriend00