[英]JavaScript - How to get the name of the key inside a function
我有一個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是否可行。
參考:knockoutjs會執行以下操作... http://knockoutjs.com/examples/helloWorld.html
您必須將該類型的信息提供給函數的接口:
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的評論,這使我更加深入。
如果有人感興趣,我會在此處發布示例實現的鏈接。該代碼有錯誤,但是演示了我試圖進行POC的數據綁定...
這是jsfiddle URL ...
http://jsfiddle.net/rajeshpillai/xQkXk/22/
嘗試更改文本框中的值,相關對象將自動更新。
謝謝大家的評論。 這只是原始的/笨拙的代碼。.將在接下來的幾天里進行完善...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.