0

我正在编写一个脚本,它给我一个错误说Object doesn't support this property or method。我很确定 IE8 指的this是窗口对象。

var self = {
  method1: function () {

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

当提到对象的自我时,是否有办法克服“this”的这个错误?我看过有关.call(this)但不确定这是否与此处相关的帖子。谢谢!

我这样调用函数:

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

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

// init
Module.method2();
4

1 回答 1

0

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

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

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


 Module.method2();

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

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

self.method2.call(self);
于 2013-11-11T11:08:22.847 回答