我有很多的屬性和方法的對象,並假設它存儲在Global.Framework
。現在,我有另一個對象User
,我想通過將.Framework
複製到User
來爲其提供訪問Global.Framework
。
然而,User
也有一個稱爲Name
屬性,(存儲在User.Name
),其需要被傳遞到每個框架的方法爲第一個參數,透明。
示例代碼
例如,在用於Global.Framework
方法聲明,可能存在類似
Global.Framework = {
methodOne: function(name, a, b, c) { /* do something */ },
methodTwo: function(name, a) { /* do something */ },
propertyOne: 100,
propertyTwo: "me"
}
但是,我想這些方法被暴露於User.Framework
這樣的:(本屬性簡單地克隆,不需要任何額外的處理)
User.Framework = {
methodOne: function(a, b, c) {
return Global.Framework.methodOne(User.Name, a, b, c);
} (...)
的問題
顯然,作爲方法在Framework
量會有所改變,甚至他們的觀點,我不能宣佈他們一個個在克隆過程中手動。
什麼我試過到目前爲止
我擡起頭來如何獲得的參數動態,發現這個:How to get function parameter names/values dynamically from javascript
但我不知道如何做到這一點,它最好不要使用太多的處理資源。這是我想到的是:通過每個屬性的Framework
對象
- 走,如果不是一個函數克隆它,或
- 獲取功能
- 參數列表?重寫調用
return functionBeingLooped(User.Name, [the rest of the arguments])
我卡上的步驟3和我有限的JavaScript知識使我想起了什麼,除了eval
(這是毫無疑問的)。有沒有辦法做到這一點?
明白了,謝謝! –
這裏存在一個小問題 - 每次運行都會覆蓋'thing'變量,而且當我被稱爲克隆[a]時,如果它通過org [a],[b],[c] in該命令,調用克隆[任何東西]將嘗試在[c]上調用.apply。我該如何解決這個問題? –
@JimmieLin您是否使用某種返回克隆版本的函數創建多個實例?在這種情況下,我需要看到克隆功能本身。 – HMR