56 lines
1.1 KiB
Plaintext
56 lines
1.1 KiB
Plaintext
The ``++new++`` keyword should only be used with objects that define a constructor function. Use it with anything else, and you'll get a ``++TypeError++`` because there won't be a constructor function for the ``++new++`` keyword to invoke.
|
|
|
|
|
|
== Noncompliant Code Example
|
|
|
|
[source,javascript]
|
|
----
|
|
function MyClass() {
|
|
this.foo = 'bar';
|
|
}
|
|
|
|
var someClass = 1;
|
|
|
|
var obj1 = new someClass; // Noncompliant;
|
|
var obj2 = new MyClass(); // Noncompliant if considerJSDoc parameter set to true. Compliant when considerJSDoc=false
|
|
----
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
[source,javascript]
|
|
----
|
|
/**
|
|
* @constructor
|
|
*/
|
|
function MyClass() {
|
|
this.foo = 'bar';
|
|
}
|
|
|
|
var someClass = function(){
|
|
this.prop = 1;
|
|
}
|
|
|
|
var obj1 = new someClass; // Compliant
|
|
var obj2 = new MyClass(); // Compliant regardless of considerJSDoc value
|
|
----
|
|
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
include::parameters.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|