访问javascript对象中的变量
Accessing variables in a javascript object
我有一个对象:
settings: {
navBar: $(".navbar");
dropdown: navBar.find(".dropdown");
}
然而,这会抛出错误navBar
未定义。使用this.navBar
似乎也不起作用。
你的意思是当你定义一个对象时,你在引用兄弟属性时遇到了麻烦,像这样:
var example = {
a: 1,
b: a + 1 // <-- a is undefined
};
这是因为这里的a
或this.a
将在定义example
的作用域内引用属性a
。
你可以试试这样做:
function prepareSettings(navNode)
{
return {
navBar: navNode,
dropdown: navNode.find(".dropdown")
};
}
var settings = prepareSettings( $(".navbar") );
或者在settings
中创建一个getter类型的方法,其中this
引用settings
对象并访问其navBar
属性:
var settings = {
navBar: $(".navbar"),
getDropdown: function()
{
return this.navBar.find(".dropdown");
}
};
你所遇到的问题的一个更清晰的例子可以这样演示:
var a = 5;
var test = {
a: 3,
b: a
};
// Output is 5 rather than 3, which you might have
// been expecting instead.
console.log(test.b);
不能从对象文字声明内部访问navBar
属性。你必须这样做:
var navBar = $(".navbar"),
settings = {
navBar: navBar,
dropdown: navBar.find(".dropdown")
};
将navBar
声明为局部变量,然后在对象声明中引用它。
相关文章:
- 替换另一个变量对象中的变量值
- 如何从表单变量对象中获取特定的from属性
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 执行上下文和变量对象在 JavaScript 中实际上是一回事吗?
- 如何将变量对象传递到多个javascript弹出窗体
- 如何将javascript变量/对象从一个页面传递到另一个页面
- 在具有递增的变量/对象中存储和控制传单 GeoJSON 图层
- 在回调中重用变量/对象
- 给一个有1个变量/对象的函数给定几个参数
- 使用单词'英语'因为变量/对象名称在javascript中不起作用
- 如何访问变量对象中的数据
- 使用onclick调用变量对象中的函数
- 使用Underscore JS部分和for循环的未定义变量对象
- 如何查看我的变量对象
- 变量对象属性名称作为javascript中的参数
- 从变量对象中移除DOM元素,以便将其发布到服务器
- 根据变量对象是否等于“true”输出内容
- 如何连接(变量+对象键名)以获得点表示法的对象值
- 为什么在ES5中将变量对象改为词法环境
- 动态引用变量(对象)