簡體   English   中英

JavaScript-如何獲取函數內部鍵的名稱

[英]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對象置於某種“狀態”。

您可以通過for..in實現。 請參閱下面的演示

http://jsfiddle.net/3SwyM/2/

盡管它適用於靜態名稱,但是如果您的observe()效果很好,那么您也可以實現結果

我准備好樣品后回答我自己的問題。 感謝Yoshi的評論,這使我更加深入。

如果有人感興趣,我會在此處發布示例實現的鏈接。該代碼有錯誤,但是演示了我試圖進行POC的數據綁定...

這是jsfiddle URL ...

http://jsfiddle.net/rajeshpillai/xQkXk/22/

嘗試更改文本框中的值,相關對象將自動更新。

謝謝大家的評論。 這只是原始的/笨拙的代碼。.將在接下來的幾天里進行完善...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM