我有这个 JavaScript 对象:
return {
AccDocs: {
query: function() {
...
},
deleteAndQuery: function() {
...
AccDocs.query(); //Error: AccDocs is not defined
}
}
}
但是,它返回一个错误,指出 AccDocs 未定义
。
我怎样才能实现这样的目标?
最佳答案
对象上的变量和属性是不同的东西。如果不指定您所指的对象,则无法访问对象的属性。
您可能可以使用this
关键字访问它:
this.query();
请记住,this
的值将为 vary depending on how the function is called (当调用a.b.c.d.AccDocs.deleteAndQuery()
时,deleteAndQuery
内的this
将为AccDocs
,因为它是第一个对象位于最后一个 .
的左侧,但如果您要先将 query
复制到另一个变量,然后调用 query()
,请将其传递setTimeout
,或者如果您要使用call
或apply
,那么this
的值将会改变)。
为了提高鲁棒性(但灵 active 较差,因为能够更改上下文可能很有用),您可以将对象存储在可以通过名称访问的变量中。
var AccDocs = {
query: function() {
...
},
deleteAndQuery: function() {
...
AccDocs.query();
}
};
return { AccDocs: AccDocs };
关于javascript - 如何在另一个键/值对中使用定义的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35264898/