嵌套对象互相引用?

时间:2013-05-19 00:35:51

标签: javascript oop

假设我有这样的事情:

network = {
  post: function(t) {
    console.log(t); }
  protocol: {
    init: function() {
      /* network.post("init") */ } } }

注释部分,我如何允许network.protocol.init函数通过某种相对链接调用network.post? network.protocol如何找到网络变量?

感谢。 :)

1 个答案:

答案 0 :(得分:1)

这是对象文字语法的限制;你就是做不到。

您最好的选择是通过network对象上的属性引用protocol,并在通过对象文字语法声明对象后立即添加它;

network = {
  post: function(t) {
    console.log(t); }
  protocol: {
    init: function() {
      this.network.post("init") } } }

network.protocol.network = network;

...这是有效的,因为network属性的存在被推迟到执行init本身。