我使用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
时,可能会丢失范围或全局变量如何将类转换为具有相同功能的函数对象?