2013-04-29 2 views
1

От underscoresjs.orgЧто такое хороший способ эмулировать кастинг?

// Generate a unique integer id (unique within the entire client session). 
    // Useful for temporary DOM ids. 
    var idCounter = 0; 
    _.uniqueId = function(prefix) { 
    var id = ++idCounter + ''; 
    return prefix ? prefix + id : id; 
    }; 

Оказывается, что эта линия:

var id = ++idCounter + ''; 

бросает число в строку путем конкатенации его с пустой строкой.

Это хороший способ отличить от числа до строки?

+0

Определить «хорошо». '+ ''' короче, чем '.toString()' и 'String()' конструкций, и на самом деле является хорошо известной JS-идиомой, поэтому, если ваше определение «хороший» включает читаемость и компактность, этот подход хорош , – raina77ow

ответ

1

Да, это хороший способ бросить в строку.

Если вы хотите что-то более явное, используйте .toString().

var id = (++idCounter).toString(); 

Пока Number.prototype.toString() не были перезаписаны, это будет работать.

+2

... или 'String (++ idCounter)'. – raina77ow

+0

@ raina77ow: Твой путь лучше ИМО. – 2013-04-29 17:24:58

+0

Почему?) Afair, 'Number.prototype.toString()' все равно будет вызван таким образом. – raina77ow

Смежные вопросы