访问对象属性时遇到问题

时间:2013-09-14 02:39:42

标签: javascript jquery

我在访问对象的属性时遇到了麻烦。

是不是可以像这样访问对象的属性?

key["heading"]
上面代码中的

键是一个变量。

以下代码是我正在处理的代码。

alertHeading.on('blur', function(){

    var inputtedVal = $(this).val();
    var key = alertMode.val();

    chrome.runtime.getBackgroundPage(function(backgroundPage) {

        var background = backgroundPage.background;

        //(1)This works fine.
        background.setStorage(key, {heading:inputtedVal});  
        console.log(background.getStorage(key));// Object {heading: "aaa"}

        //(2)This doesn't work.
        var alertObject = background.getStorage(key["heading"]);
        console.log(alertObject);// null. I'm expecting to get "aaa".

    });

})

我认为我犯的一个非常简单的错误来自于我缺乏javascript知识。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:4)

你的key不是一个对象,它是一个字符串。从background.getStorage(key)返回的是一个对象,所以你可以这样做:

var alertObject = background.getStorage(key)["heading"]; // note () and [] placement

// OR, in two steps:
var alertObject = background.getStorage(key);
var heading = alertObject["heading"];

编辑:

  

“我还没理解为什么它不是一个对象而是一个字符串呢”

您的key变量设置为jQuery .val()方法的返回值:

var key = alertMode.val();

...返回一个字符串,该字符串是调用它的表单元素的值。添加一个console.log(key),你会看到。