js:proto.mdown 1.1 KB

// makeProfileTimer function makeProfileTimer(){

var t0 = performance.now();
function doSomething(){}
var t1 = performance.now();

return t1-t0; } var timer = makeProfileTimer(); alert("Выполнение doSomething длится " + timer + " милисекунд");

// makeSaver

function makeSaver(a){

var save;                   
return function(){
    if(!save){
      save = a()
    }
    return save;
}

} var saver = makeSaver(Math.random);
var value1 = saver();
var value2 = saver(); alert(value1 === value2)

//FinalCountdown for(var i=5;i>0;i--){

(function(a){
    setTimeout(function(){
        console.log(a)
    },6000-a*1000);
})(i);

}

//myBind

//avg

Array.prototype.avg = function() { var sum = 0;

for (var i = 0; i < this.length; i++) {

sum = +this[i];

}

return (sum / this.length); }

//copy

Object.prototype.copy = function() { var myObj = {};

for (var key in this) {

  myObj[key] = this[key];

}

return myObj; }

var a = {year: 1999, month: 11}; var b = a.copy(); b.year = 2017;

console.log(a); console.log(b);