Переопределить toString () Javascript для одного объекта массива - PullRequest
3 голосов
/ 26 октября 2011

У меня есть следующее:

var version = [0,3,0];

// Override the version toString method.
version.__proto__.toString = function() {
    return this.join('.');
};

Что делает следующее

version.toString => '0.3.0'

JSlint стонет, что __proto__ является зарезервированным именем - это правильно.

Полагаю, я неправильно перегружаюсь.

Я не хочу

Array.prototype.toString

, так как это заменит все массивы для замены на.?

1 Ответ

15 голосов
/ 26 октября 2011

Просто установите метод для массива напрямую:

var version = [0,3,0];

// Override the version toString method.
version.toString = function() {
    return this.join('.');
};
...