我在访问对象的属性时遇到问题。
难道不能像这样访问对象的属性吗?
key["heading"]
上面代码中的key是一个变量。
下面的代码是我现在正在处理的代码。
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 知识。
请帮我解决这个问题。
最佳答案
您的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"];
编辑:
"I haven't understood why it's not an object but a string yet"
您的 key
变量设置为 jQuery 的 .val()
方法的返回值:
var key = alertMode.val();
...返回一个字符串,该字符串是调用它的表单元素的值。添加console.log(key)
,您就会看到。
关于javascript - 访问对象的属性时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797755/