在JavaScript中将类对象转换为函数对象

时间:2018-07-24 07:01:01

标签: javascript

我使用class关键字,但是IE 9不支持此关键字。它只是不执行任何操作,甚至不会引发任何错误,因此我认为类对象将被完全忽略。

我有一个适用于Chrome的示例类

class MyObj {
  constructor() {
    this.values = null;
    this.init();
  }

  init() {
    this.values = [1, 2, 3, 4, 5];
    this.changeValues();
  }

  changeValues() {
    var newValues = this.values.map(function(x) {
      return x * 2;
    });

    console.log(newValues);
  }

  sayHello() {
    console.log("hello");
  }
}

var o = new MyObj();
o.sayHello();

,对于IE,我想将此类转换为函数对象。我尝试过了

function MyObj() {
  this.values = null;

  this.init();

  this.init = function() {
    this.values = [1, 2, 3, 4, 5];
    this.changeValues();
  }

  this.changeValues = function() {
    var newValues = this.values.map(function(x) {
      return x * 2;
    });

    console.log(newValues);
  }

  this.sayHello = function() {
    console.log("hello");
  }
}

var o = new MyObj();
o.sayHello();

但出现一些问题:

  • 似乎没有可以使用的构造函数
  • 如何在另一个函数中调用一个函数?
  • 使用arr.map时,可能会丢失范围或全局变量

如何将类转换为具有相同功能的函数对象?

0 个答案:

没有答案