Closed
Description
// @allowJs: true
// @checkJs: true
// @Filename: a.js
function C(p) {
this.p = p
}
C.prototype = {
m() {
console.log(this.p)
}
}
C.prototype.q = function(r) {
return this.p === r
}
var c = new C(1)
c.q(2)
c.m()
Expected behavior:
Both q
and m
are methods on c
.
Actual behavior:
Only q
is a method on c
; m
is not recognised.
Note that if the declaration is var C = function(p) { this.p = p }
, everything works. This only happens when C
is a function declaration instead of a variable declaration with a function initialiser.