view core-javascript/javascript-exercises/closure-exercises.js @ 171:19e88fb18c4e javascript-exercises

Modify testtools.js to work with Rhino (and hope still works with jsdb).
author jf3243
date Thu, 10 Nov 2011 17:06:52 +0000
parents 44d0ccb983d3
children
line wrap: on
line source

var something;

TEST('anon', function()
{
    var answer;

    // Please write your answer here.

    assert( answer() ===  1 );
});


TEST('anon', function()
{
    var outer_function = function(){

        var answer;

        // Please write your answer here.

        return answer;
    };

    var my_inner_function = outer_function();

    assert( typeof my_inner_function === 'function' );
    assert( my_inner_function() === 1 );
});


TEST('anon', function()
{
    var outer_function = function(){

        var answer;

        // Please write your answer here.

        return answer;
    };

    assert( outer_function()() === 1 );
});


TEST('anon', function()
{
    var outer_function = function(n){

        var answer;

        // Please write your answer here.

        return answer;
    };

    assert( outer_function(1)() === 1 );
    assert( outer_function(2)() === 2 );
    assert( outer_function(3)() === 3 );
});


TEST('anon', function()
{
    var outer_function = function(n){

        // Please write your answer here.
    };

    assert( outer_function(1)() === 1 );
    assert( outer_function(2)() === 2 );
    assert( outer_function(3)() === 3 );
});


TEST('anon', function()
{
    var value = 1;

    var get_value = function(){
        return value;
    };

    assert( get_value() === something );
});


TEST('anon', function()
{
    var value = 1;

    var set_value = function(n){
        value = n;
    };

    set_value(2);
    assert( value === something );
});


TEST('anon', function()
{
    var value = 1;

    var get_value = function(){
        return value;
    };

    var set_value = function(n){
        value = n;
    };

    assert( get_value() === something );

    set_value(2);
    assert( get_value() === something );
});


TEST('anon', function()
{
    var value = 1;

    var ddd = function(aaa, bbb){
        return {
            // Please write your answer here.
            };
    };

    var obj = ddd(1, 2);

    assert( obj.aaa === 1 );
    assert( obj.bbb === 2 );

});


TEST('anon', function()
{

    var get_set_factory = function(){

        // Please write your answer here.

        return {
            get : get,
            set : set
        };
    };

    var tmp;
    tmp = get_set_factory();
    var get_a = tmp.get;
    var set_a = tmp.set;

    tmp = get_set_factory();
    var get_b = tmp.get;
    var set_b = tmp.set;


    set_a('aaa');
    assert( get_a() == 'aaa' );

    set_b('bbb');
    assert( get_b() == 'bbb' );

    assert( get_a() == 'aaa' );
});