Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
switch (..) {
case 21:
case 22:
case 23: doSomething(); break;
}
hash[21] = hash[22] = hash[23] = function(){ doSomething(); }
switch (..) {
case 21: doSomething1();
case 22: doSomething2();
case 23: doSomething3(); break;
}
hash[21] = function(){ doSomething1(); };
hash[22] = function(){ hash[21](); doSomething2(); };
hash[23] = function(){ hash[22](); doSomething3(); };
Array.prototype.Equals = function(value) {
if (value.constructor != Array) return false;
if (this.length != value.length) return false;
var ar1 = new Array().concat(this);
var ar2 = new Array().concat(value);
var result = ar1.sort().toString() == ar2.sort().toString();
delete ar1;
delete ar2;
return result;
}
* This source code was highlighted with Source Code Highlighter.Array.prototype.Equals = function(value) {
if (value.constructor != Array) return false;
if (this.length != value.length) return false;
for(var i=this.length; i--;) {
if(this[i]!==value[i]) return false;
}
return true;
}
* This source code was highlighted with Source Code Highlighter.создание единой функции...Тут важно, чтобы не захотелось сделать тоже самое с прототипом Object: из-за этого желания проход по всем свойствам объекта уже нельзя будет сделать простым for (i in Obj) {… }, что повлечёт за собой дополнительные затраты ресурсов (как минимум на hasOwnProperty)
var loop=1000000;
function start() {time=new Date();}
function end() {document.write("
"+(new Date() - time));}
var cicles={
'classic_cicle': function(){for(var i=0; i<loop; i++) {}},
'invert_cicle': function(){for(var i=loop; i--;) {}},
'while_cicle': function() {var i=loop; while(i--) {}}
}
start();
cicles.classic_cicle();
end();
Производительность простых и сложных конструкций в JavaScript