我有一堆分配给变量的对象:
var ElectricCar = {
start: function(){ alert('started electric car') }
};
var BioDieselCar = {
start: function(){ alert('started bio diesel car') }
};
Run Code Online (Sandbox Code Playgroud)
我想在其中一个对象上调用start方法,但我只有一个字符串可以使用:
var Starter = {
init: function(carType){
//... start the car that matches car type
}
};
Starter.init('ElectricCar');
Run Code Online (Sandbox Code Playgroud)
如何在适当的对象上调用start方法?
首选技术需要稍微重构您的代码.
var cars = {
ElectricCar: {
start: function(){ alert('started electric car') }
},
BioDieselCar: {
start: function(){ alert('started bio diesel car') }
}
};
var carType = 'ElectricCar';
// access the properties of cars by string
cars[carType].start();
Run Code Online (Sandbox Code Playgroud)
这种技术是优选的,因为它避免了使用eval.通过将变量转换为对象的属性,可以按字符串引用它们.
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |