检查函数调用是否具有正确的参数类型

时间:2013-09-10 20:01:00

标签: javascript types constructor arguments eval

有没有办法检查函数调用是否具有正确的参数类型。 假设我有一个名为changeCar的函数,它接受两个参数,一个是Car类型,另一个是String类型。

function Car(){
this.make="generic";
}

function changeCar(car,mytype){
car.make=mytype;
}

var mycar=new Car();
changeCar(mycar,"ferrari");

有没有告诉mycar和“ferrari”是否是运行changeCar所需的正确类型? 我需要在运行脚本之前执行此操作,如果可能,可以使用eval或try / catch来查找错误。

该应用程序允许学生输入javascript脚本并在函数参数和函数调用中查找错误。

1 个答案:

答案 0 :(得分:0)

function changeCar (car, mytype) {
    if ( car instanceof Car && mytype.toLowerCase ) {
        car.make = mytype;
    }
}

Duck typing FTW。