【发布时间】:2012-09-16 01:29:15
【问题描述】:
所以我创建了一个这样的函数,
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 我不确定我是否理解。我不能做 functionName = myObj 因为这将覆盖函数定义。目前,functionName 被作为 functionName() 和 functionName.x 访问,所以我需要保持这种行为。
-
附注:myObj应该是从Function.prototype派生出来的,这样你仍然可以访问functionName.bind等(当然这和原来的问题无关)
标签: javascript function prototype