JavaScript-如何获取函数中键的名称

JavaScript-如何获取函数中键的名称,javascript,Javascript,我有一个javascript文本对象,如下所示 var db = new Observer(); var user = { firstName: db.observe("abc"), lastName: "xyz", middleName: db.observe("test") }; 注意:“firstName”值是一个函数调用db.observe(“abc”),它接受一个参数 var Observer = function() { this.observe = fu

我有一个javascript文本对象,如下所示

var db = new Observer();
var user = {
   firstName: db.observe("abc"),
   lastName: "xyz",
   middleName: db.observe("test")
};
注意:“firstName”值是一个函数调用db.observe(“abc”),它接受一个参数

var Observer = function() {
    this.observe = function (value) {  // INITIAL value of the field
        // HOW WILL I GET "key, for e.g. firstName" key here so that i can associate "value" with it.

    return this;
    }
}
我的要求是获取键的名称,在本例中是observe()函数中的“firstName”

或者,请随意推荐替代方案,以实现同样的效果

注意:这与我正在试验的一个小型MVVM框架有关,目前我还停留在这一点上

让我知道这在JS中是否可行

REF:knockoutjs做了类似的事情…

你可以通过。请参阅下面的演示


虽然它对静态名称有效,但是如果您的
observe()
工作正常,那么您也可以实现该结果

您必须向函数的接口提供该类型的信息:

var observation = db.observe("abc");
var other_observation = db.observe("test");
var user = {
   firstName: ( todayIsFriday ? observation : other_observation ),
   lastName: "xyz",
   middleName: ( todayIsFriday ? other_observation : observation )
};
你不能期望解析器知道在
observe
函数中使用什么作为“键”,你基本上需要先用Javascript实现一个时间机器


因此,您确实需要将其作为额外参数传递,或者首先将db对象置于某种“状态”。

回答我自己的问题,因为我刚刚准备好了一个示例。感谢Yoshi的评论,它让我深入挖掘

如果有人感兴趣的话,我将在这里发布示例实现的链接…代码有缺陷,但演示了我试图执行的数据绑定

下面是JSFIDLE URL

尝试更改文本框中的值,从属对象将自动更新


谢谢大家的评论。这只是原始的/错误的,代码..将在接下来的几天内完善它..

这可能会有帮助:检查链接..但它没有必需的信息..传递必需的信息不是一个选项??例如
db.observe(“abc”,“firstName”),…
?:)不..至少到目前为止..如果我没有得到任何解决方案,我可能需要继续。从给定的代码示例中,我看不到任何方法如何
观察者。观察
有一种方法可以访问适当的属性名称,事实上,如果有一种方法可以这样做,我会非常惊讶。谢谢..检查了这一点..这个名字调用了db、 Observe(“default value”)…我想要在Observer对象中的db.Observe()函数中的键,在本例中是“firstName”。