我有一個模型的構造函數(類似於Backbone模型),它使用傳遞給模型工廠的商店實例(例如MongoDB/Redis)。現在的構造函數模型裏面,我做JavaScript中的原型/類/公共屬性
this.store = options.store;
店現已作爲this.store
一次我構建一個實例與var model = new Model()
。
然後我遇到了一種情況,當我的模型有「公共」方法時,例如, Model.find()
這將在沒有實例化模型的情況下工作。但是現在因爲它沒有被實例化,Model內部的函數無法通過this.store
訪問存儲。
我所做的是,我開始還將修補問題的構造函數本身Model.store = options.store
添加到商店。但是現在商店暴露給任何使用Model構造函數的東西,這是不可取的。
我在猜測我做錯了什麼。所以我會很感激一些幫助。
您正在將_instance_ methods/properties與類方法/屬性混淆。 「公共」意味着知名度,而不是所有權。 – 2013-05-08 17:01:55
@MattBall我明白,但問題仍然存在,這是做到這一點,還是我完全錯了? – 2013-05-08 17:48:56
你沒有顯示太多的代碼,所以我不能說真的。但它似乎有一個更好的方法。 – 2013-05-08 18:04:15