hw 08 answers - garevna/js-course GitHub Wiki

:one:

var p = document.body.appendChild(
    document.createElement("p")
)

var counter = 100
function timer() {
    if ( !counter-- ) return p.remove()
    p.innerText = new Date().toLocaleTimeString()
    setTimeout ( timer, 1000 )
}

timer()

:two:

var typeMessage = ( function ( velocity ) {
    const container = document.getElementById ( "demo" ) ?
        document.getElementById ( "demo" ) :
        document.body.appendChild (
            document.createElement ( "h4" )
        )
    var index = 0
    return function ( message ) {
        var num = index
        setTimeout ( 
            () => container.textContent += message [ num ],
            1000 * velocity * num
        )
        index++ < message.length - 1 ? arguments.callee ( message ) : null
    }
})( 1 )

typeMessage ( `Welcome to the hell` )

:three:

function User ( name ) {
    this.name = name
    this.id = this.counter()
}
User.prototype.counter = (
    function () {
        var counter = 0
        return function () {
            return this.id ? this.id : counter++
        }
    }
)()

var users = [
    new User ( "Семен" ),
    new User ( "Антон" ),
    new User ( "Демьян" ),
    new User ( "Василий" )
]