所以我創造了這樣的功能,創建JavaScript函數的自定義原型
var functionName = function(arg1) { //code logic here; }
與此同時,我需要這個功能作爲一個對象來工作。它不會真的保存任何東西,但數據將從另一個對象訪問。
var myObj = new Object();
myObj.x = 3;
myObj.y = 4;
所以,當我走了,functionName.x
它應該返回myObj.x
。 myObj
對象正在其他地方維護,我沒有任何控制權。
這是怎樣我現在實現了它,
functionName.__proto__ = myObj;
它工作正常。但__proto__
已被棄用,我想看看是否有任何其他安全的方式來做到這一點。我想覆蓋Function.prototype
但它不起作用。
爲什麼你不只是存儲在** functionName **只是對** myObj **的引用? – Kryz
@Kryz我不確定我明白了,我不能做functionName = myObj cuz,它會覆蓋函數定義。目前,functionName被作爲functionName()和functionName.x訪問,所以我需要維護這個行爲。 –
一個備註:myObj應該可以從Function.prototype派生,這樣你仍然可以訪問到functionName.bind等等(當然,這與原始問題無關)。 – Marc