繁体   English   中英

如何从JavaScript Object Literal获取数据

[英]How to get data from a JavaScript Object Literal

我想找到一种方法从“objName”中定义的函数“fn”获取名称“objName”。

请参阅注释以了解它应如何工作。

this.objName = {
    fn : function () {console.log("????");}
}

this.objName.fn() // objName

显然,“fn”函数不会以这种方式调用,而是来自JavaScript Button动作事件。 (该按钮在this.objName = {....}中定义)

丑陋但是怎么样

this.ns = {};
this.ns.objName = {
    fn : function () {
        for (var k in ns)
            if (this === ns[k]) {
              alert(k);  
              return;
             }
     }
}

this.ns.objName.fn(); // objName

您可以删除ns并使用窗口。

编辑 ; 更新后,如果要从该对象创建的事件处理程序中访问该对象;

var Obj = new function() {
   this.objName = {
      id: 42,
      makeLink: function () {
         var self = this;
         document.getElementById("someelement").onclick = function(e) {
            alert(self.id); // 42
         };
      }
   }
}

我之前正在寻找这个......直到我意识到(在看过stackoverflow之后),如果你能够写:

this.objName.fn()

你已经知道'objName'是什么了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM