实例创建(JS)

时间:2015-04-07 21:27:55

标签: javascript node.js browserify

我一直在阅读Substack模块,并注意到他创建一个新的Object对象的风格。

if (!(this instanceof Browserify)) return new Browserify(files, opts); https://github.com/substack/node-browserify/blob/master/index.js#L37

我知道{this}中的this特殊情况是指窗口obj,而Browserify不会是这个(窗口)的实例。

我的问题是:您对创建对象的方式或风格有何看法? /这是一种实例化对象的便捷方式,而不必这样做。
var brows = require('browserify') 然后 var x = new brows()

1 个答案:

答案 0 :(得分:4)

实际上,这可以防止您在不返回对象实例的情况下调用构造函数,或者只是无需使用new关键字。以下是同样的事情:

var brs = new Browserify();
var brs = Browserify();
无论如何,

brs将是一个实例化的Browserify对象。

至于为什么这是好的或必要的 - 我认为这是一个意见问题而不是其他任何事情。