如何从JavaScript Object Literal获取数据

时间:2011-10-11 15:57:21

标签: javascript

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

查看评论以了解它应如何运作。

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

this.objName.fn() // objName

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

2 个答案:

答案 0 :(得分:4)

丑陋但

怎么样?
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
         };
      }
   }
}

答案 1 :(得分:0)

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

this.objName.fn()

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