我正在使用mootools 1.4.3進行基本類繼承。我實際上是從一個不同的類庫轉換一些代碼。這個其他類庫會根據預定義的函數名稱模板動態創建getter和setter(成員函數_ 得到 _xxx將產生xxx的getter)。我想要做一些與mootools類似的東西。我對JavaScript並不陌生,但我對某些更高級的概念有些陌生。自動獲取/設置器
我已經完成了它的部分工作。在正在定義Class對象的代碼中,循環遍歷類參數並相應地添加defineGetter或defineSetter。
這個偉大的工程,它創造的getter和setter方法正確。失敗的地方是我創建一個孩子班的時候。這些動態獲取器/設置器不會傳播到子類。我不確定這是否可能,如果是的話,它是如何做到的。使用上述變化MooTools的類和這些類:
在日誌中富,我可以看到酒吧的getter和setter。在baz的日誌中,我可以看到quux的getter和setter,但我也想看到來自父級的getter和setter。再說一次,如果我能夠實現這一點,它將爲我節省很多時間來轉換此代碼。
你能解釋一下你的用例嗎?有什麼可能的好處是沒有創建 - 自動 - 你的原型映射到特定屬性的函數?可能Class.Mutators是去這裏的地方,你可以聲明哪些變量應該接收一個getter/setter。 – 2012-03-08 16:21:18
基本上,我正在使用一些現有的代碼,它具有__get__XXX和__set__XXX類型的函數,而不是在每個構造函數中添加__defineGetter__和__defineSetter__,我想改變MooTools爲我創建這些代碼。我的嘗試有點奏效,但生成的基類getter/setters不可用於子類。 – brandon 2012-03-08 16:30:33