Javascript:如何在动态确定的变量上调用方法?

And*_*rew 1 javascript

我有一堆分配给变量的对象:

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方法?

Ken*_*ing 5

首选技术需要稍微重构您的代码.

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.通过将变量转换为对象的属性,可以按字符串引用它们.