"noop"함수를 사용하고 싶습니다. (아무 것도하지 않는 함수입니다.jshint 및 Function() 가져 오기 : 생성자를 호출 할 때 'new'접두어가 누락되었습니다.
var noop = Function();
을하지만 파일을 통해 jshint을 실행할 때, 필자는 다음과 같은 오류지고 : 그래서 내가 쓰고 내가 Function.prototype
에 대한 Function()
을 변경할 때
Missing 'new' prefix when invoking a constructor.
이 오류가 멀리 간다,하지만 내가 선호 첫 번째.
왜이 오류가 발생합니까? 이 힌트를 어떻게 피할 수 있습니까?
미리 감사드립니다.
첫 번째 문자가 대문자 인 모든 함수는 호출 될 때 새 인스턴스로 간주됩니다. 당신은 var noop = function() {}을 사용하여 동일한 결과를 얻을 수 있습니다. 또한 Function()을 직접 사용하는 것은 나쁜 습관으로 간주됩니다. –
왜 나쁜 습관입니까? Function()에 의해 생성 된 – lante
함수는 호출 될 때 구문 분석됩니다. 이것은 나머지 코드와 구문 분석되는 function() {} 표현식을 사용하는 것보다 효율적이지 않습니다. Function()로 작성된 함수는 항상 전역 범위에서 작성됩니다. 나를 틀리게하지 마라, 그것이 장소 다. eval 대신 Function()을 사용하는 것이 좋습니다. 그것은 내가 그것을 사용할 때 한 곳이다. 대부분의 경우 명명 된 함수가 사용되었습니다. –