所以我创建了一个这样的函数,
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
但它不起作用。
最佳答案
你想实现对 myObj 的委托(delegate):
var functionName = function(arg1) { // code }
functionName.myObj = new MyObj();
for (prop in functionName.myObj) {
if (functionName.myObj.hasOwnProperty(prop)) {
functionName.__defineGetter__(prop, function() { return functionName.myObj[prop]; } );
}
}
关于javascript - 使用自定义原型(prototype)在 javascript 中创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12443769/