@@ -3,18 +3,18 @@ module("About Functions And Closure (topics/about_functions_and_closure.js)");
33test ( "defining functions directly" , function ( ) {
44 var result = "a" ;
55 function changeResult ( ) {
6- // the ability to access a variables defined in the same scope as the function is known as 'closure'
6+ // the ability to access a variable defined in the same scope as the function is known as 'closure'
77 result = "b" ;
88 } ;
99 changeResult ( ) ;
10- equals ( result , __ , 'what is the value of result?' ) ;
10+ equals ( result , "b" , 'what is the value of result?' ) ;
1111} ) ;
1212
1313test ( "assigning functions to variables" , function ( ) {
1414 var triple = function ( input ) {
1515 return input * 3 ;
1616 } ;
17- equals ( triple ( 4 ) , __ , 'what is triple 4?' ) ;
17+ equals ( triple ( 4 ) , 12 , 'what is triple 4?' ) ;
1818} ) ;
1919
2020test ( "self invoking functions" , function ( ) {
@@ -23,13 +23,13 @@ test("self invoking functions", function() {
2323 // self invoking functions are used to provide scoping and to alias variables
2424 ( function ( pv ) {
2525 var secretValue = "password" ;
26- equals ( pv , __ , 'what is the value of pv?' ) ;
27- equals ( typeof ( secretValue ) , "__ " , "is secretValue available in this context?" ) ;
28- equals ( typeof ( publicValue ) , "__ " , "is publicValue available in this context?" ) ;
26+ equals ( pv , "shared" , 'what is the value of pv?' ) ;
27+ equals ( typeof ( secretValue ) , "string " , "is secretValue available in this context?" ) ;
28+ equals ( typeof ( publicValue ) , "string " , "is publicValue available in this context?" ) ;
2929 } ) ( publicValue ) ;
3030
31- equals ( typeof ( secretValue ) , "__ " , "is secretValue available in this context?" ) ;
32- equals ( typeof ( publicValue ) , "__ " , "is publicValue available in this context?" ) ;
31+ equals ( typeof ( secretValue ) , "undefined " , "is secretValue available in this context?" ) ;
32+ equals ( typeof ( publicValue ) , "string " , "is publicValue available in this context?" ) ;
3333} ) ;
3434
3535test ( "arguments array" , function ( ) {
@@ -38,8 +38,10 @@ test("arguments array", function() {
3838 for ( var i = 0 ; i < arguments . length ; i ++ ) {
3939 // complete the implementation of this method so that it returns the sum of its arguments
4040 // __
41+ total += arguments [ i ] ;
4142 }
4243 // __
44+ return total ;
4345 } ;
4446
4547 equals ( add ( 1 , 2 , 3 , 4 , 5 ) , 15 , "add 1,2,3,4,5" ) ;
@@ -57,7 +59,7 @@ test("using call to invoke function",function(){
5759 //function, and the arguments to be sent to the function,multiple arguments are separated by commas.
5860 var result = invokee . call ( "I am this!" , "Where did it come from?" ) ;
5961
60- equals ( result , __ , "what will the value of invokee's this be?" ) ;
62+ equals ( result , "I am this!Where did it come from?" , "what will the value of invokee's this be?" ) ;
6163} ) ;
6264
6365test ( "using apply to invoke function" , function ( ) {
@@ -70,6 +72,6 @@ test("using apply to invoke function",function(){
7072 //function and and array of arguments to be passed into the called function.
7173 var result = invokee . apply ( "I am this!" , [ "I am arg1" , "I am arg2" ] ) ;
7274
73- equals ( result , __ , "what will the value of invokee's this be?" ) ;
75+ equals ( result , "I am this!I am arg1I am arg2" , "what will the value of invokee's this be?" ) ;
7476} ) ;
7577
0 commit comments