x() instanceof x と new x() instanceof x を同時に満たすような x の作り方。
var x = (function () { var constructor = function (args) { /* constructor */ }; /* other definitions */ var exports = function (args) { return new constructor(args); }; constructor.prototype.constructor = exports; exports.prototype = constructor.prototype; return exports; }());
とやると、x() instanceof x && new x() instanceof x となる。
jQuery も似たような事やってる。https://github.com/jquery/jquery/blob/master/src/core.js