javascript - 如何在另一个键/值对中使用定义的键

标签 javascript json object

我有这个 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,或者如果您要使用callapply,那么this的值将会改变)。

为了提高鲁棒性(但灵 active 较差,因为能够更改上下文可能很有用),您可以将对象存储在可以通过名称访问的变量中。

var AccDocs = {
    query: function() {
            ...
    },
    deleteAndQuery: function() {
            ...
        AccDocs.query();
    }
};

return { AccDocs: AccDocs };

关于javascript - 如何在另一个键/值对中使用定义的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35264898/

相关文章:

Javascript 导入包无法解析模块说明符

json - 空字符串或空变量的 JSON 标准是什么?

javascript - 如何将事件处理程序动态附加到 SVG 组?

javascript - 循环中页面对象的范围丢失

python - 如何导入自定义 json 模块而不是 python 2.7 中的默认模块?

javascript - 获取其值函数内的键名称

javascript - 如何避免多重 map 功能

c++ - Lua - 反射 - 获取对象上的函数/字段列表?

javascript - 未定义方法 `has_content_type?' 为 nil :NilClass

javascript - AngularJS:拉动刷新