CSiginIn
, CSignUp
, CTryIt
, CBlocks
are all functions declared as such
function CSignIn(){//stuff here}
yet JSHint says that I am missing the 'new' 'prefix'. What can I do to fix this?
They are just functions inside the module pattern. Also, it is asking me to remove semicolons I had placed at the end of the function which I have done.
var Control = ( function () { /** *Publik */ var publik = function ( page ) { // page 1 initialization if( page == 1 ) { CSignIn(); CSignUp(); CTryIt(); CBlocks(); }
Function Example...
function CTryIt() { // pull elements var tryit_button = document.getElementById( 'tryit_button' ); // initialize access to Model tryit_button.addEventListener( "click", function( ) { new AjaxRequest().invoke( 'ajax_type=ControlTryIt', function( server_response_text ) { new AjaxResponse( server_response_text, 'page_change' ); } ); }, false ); }
If newcap
is enabled, JSHint expects functions starting with a capital letter to be constructors and therefore to be called with the new
keyword.
Solution: Either disable this option or rename your functions.
From the documentation:
This option requires you to capitalize names of constructor functions. Capitalizing functions that are intended to be used with
new
operator is just a convention that helps programmers to visually distinguish constructor functions from other types of functions to help spot mistakes when usingthis
.Not doing so won't break your code in any browsers or environments but it will be a bit harder to figure out—by reading the code—if the function was supposed to be used with or without
new
. And this is important because when the function that was intended to be used withnew
is used without it,this
will point to the global object instead of a new object.function MyConstructor() { console.log(this); } new MyConstructor(); // -> [MyConstructor] MyConstructor(); // -> [DOMWindow]
For a more in-depth understanding on how this
works, read Understanding JavaScript Function Invocation and "this" by Yehuda Katz.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With