Типы параметров конструктора JavaScript - PullRequest
2 голосов
/ 11 октября 2009

У меня есть класс JavaScript, представляющий автомобиль, который построен с использованием двух параметров, которые представляют марку и модель автомобиля:

function Car(make, model) {
     this.getMake = function( ) { return make; }
     this.getModel = function( ) { return model; }
}

Есть ли способ проверить, что марка и модель, предоставленные конструктору, являются строками? Например, я хочу, чтобы пользователь мог сказать:

myCar = new Car("Honda", "Civic");

Но я не хочу, чтобы пользователь мог сказать,

myCar = new Car(4, 5.5);

Ответы [ 2 ]

4 голосов
/ 11 октября 2009
function Car(make, model) {
    if (typeof make !== 'string' || typeof model !== 'string') {
        throw new Error('Strings expected... blah');
    }
    this.getMake = function( ) { return make; };
    this.getModel = function( ) { return model; };
}

Или просто конвертируйте все, что вы получите, в его строковое представление:

function Car(make, model) {
    make = String(make);
    model = String(model);
    this.getMake = function( ) { return make; };
    this.getModel = function( ) { return model; };
}
0 голосов
/ 11 октября 2009

Я думаю, что вы ищете, это оператор typeof. https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...