2015-04-07 223 views
0

我一直在閱讀Substack模塊並注意他創建對象的新實例的風格。
實例創建(JS)

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

我知道this 「這一」 特殊情況是指窗口OBJ,那Browserify不會是這個(窗口)的一個實例。

我的問題是:你對這種創建對象的方式或風格有什麼想法? /這是一種實例化對象而不必做的簡便方法。
var brows = require('browserify') 然後 var x = new brows()

+0

我已經使用了'if(this.Date)return new ...';好的,只要實例沒有定義「.Date」 – dandavis

回答

4

實際上,這會阻止您調用構造函數沒有返回對象的實例,或者乾脆省去了使用new關鍵字。下面做同樣的事情:

var brs = new Browserify(); 
var brs = Browserify(); 

brs將是一個實例化對象Browserify兩種方式。

至於爲什麼這是好的或必要的 - 我認爲這是一個比任何事情都更重要的問題。

+0

你知道這種風格的技術術語嗎?或者我在哪裏可以找到更多關於它的信息。 ? –