Object Literal' this'在IE8中引用Object

时间:2013-11-11 11:03:10

标签: javascript internet-explorer-8 this

我正在处理一个脚本,该脚本给出了错误,指出对象不支持此属性或方法。我非常确定IE8将this称为Window对象。

var self = {
  method1: function () {

  },
  method2: function () {
    this.method1();
  }
};

无论如何都要克服这个'这个'什么时候提到对象的自我?我看过关于.call(this)的帖子,但不确定这是否与此相关。谢谢!

我这样调用这个函数:

var Module = (function () {
  var self = {
    method1: function () {

    },
    method2: function () {
      this.method1();
    }
  };
  return self;
})();

// init
Module.method2();

1 个答案:

答案 0 :(得分:0)

你需要从函数中返回对象,

var Module = (function () {
  return  {
    method1: function () {

    },
    method2: function () {
      this.method1();
    }
  };
})();


 Module.method2();

http://jsfiddle.net/NL99N/2/

是的,你也可以调用这样的函数,

self.method2.call(self);