Здравствуйте, уважаемые форумчане!
Читаю код Underscore и пока что два вопроса:
0)
if (length === +length) {
//...
}
Насколько я понимаю, поскольку метод
_.each() итерируется и по свойствам объекта, то проверяется наличие length и его корректность.
То есть в случае объекта мы получим:
undefined === NaN
что не позволит выполниться этой ветке условного оператора.
Возможно, это можно сделать по другому, насколько такой метод корректен, ведь:
var obj = {
a: 100,
// не является зарезервированным словом, ничто не мешает, кроме здравого смысла, это использовать
length: 1
},
len = obj.length; // в Underscore length = obj.length;
len === +len; // true, пошли итерироваться как по массиву!
1)
var length = (keys || obj).length,
results = Array(length);
Насколько может быть целесообразно аллоцировать необходимое под массив место при инициализации через конструктор?
Спасибо всем.