JSLint and JSHint will throw the "Unexpected parameter '{a}' in get {b} function" error when they encounter a named argument in the signature of a property getter function. In the following example we create an object x with a getter and setter. The getter will always return half of the set value (since getters and setters are an ECMAScript 5 feature we need to set the `es5` option, otherwise JSLint will not recognise them):
This error is raised to highlight a completely pointless and potentially confusing piece of code. Your code will run without error if you do not change it, but could be confusing to other developers and adds unnecessary bytes to the weight of your script.
ECMAScript 5 added new syntax for object property getter and setter functions. The specification states the following in reference to getters (ES5 §8.6.1):
The function’s [[Call]] internal method... is called with an empty arguments list to return the property value each time a get access of the property is performed.
Since the runtime will never pass any arguments to the getter function, there is no need to provide any named arguments in the function signature. Simply remove them to fix the error:
In JSHint 1.0.0 and above you have the ability to ignore any warning with a special option syntax. The identifier of this warning is W076. This means you can tell JSHint to not issue this warning with the /*jshint -W076 */ directive.