I am trying to finish the “Arguments Optional” challenge, my code is as below:
function addTogether() {
if(arguments.length === 2){
if(typeof arguments[0] !== 'number' || typeof arguments[1] !== 'number')
return undefined;
else
return arguments[0] + arguments[1];
}
else if(arguments.length === 1){
var c = arguments[0];
return function(element){
if(typeof c !== 'number' || typeof element !== 'number'){
console.log("SSSSSSSSSSSSSSSS");
return undefined;
}
else
return element + c;
};
}
}
when I perform the function addTogether("http://bit.ly/IqT6zt");
, the result is as below:
function(element){
if(typeof c !== 'number' || typeof element !== 'number'){
console.log("SSSSSSSSSSSSSSSS");
return undefined;
}
else
return element + c;
};
It seems that the inner function in the “addTogether” is not been performed, but as a string to be returned.
I do not know well about closure in JS, I don’t know why the inner function is not be performed.I think the result should be “undefined”.Please give me some guide.Thanks a lot!