我一直在阅读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()
答案 0 :(得分:4)
实际上,这可以防止您在不返回对象实例的情况下调用构造函数,或者只是无需使用new
关键字。以下是同样的事情:
var brs = new Browserify();
var brs = Browserify();
无论如何, brs
将是一个实例化的Browserify
对象。
至于为什么这是好的或必要的 - 我认为这是一个意见问题而不是其他任何事情。