题目:

创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。

例如,add(2, 3) 应该返回 5,而 add(2) 应该返回一个 function。

调用这个有一个参数的返回的 function,返回求和的结果:

var sumTwoAnd = add(2);

sumTwoAnd(3) 返回 5。

如果两个参数都不是有效的数字,则返回 undefined。

题目要求:
创建一个将两个参数相加的函数。
如果只提供了一个参数,则返回一个函数,这个函数与原来的函数功能要一样。
如果任何一个参数不是有效数字,则返回undefined。

add(2, 3) 应该返回 5。
add(2)(3) 应该返回 5。
add(“http://bit.ly/IqT6zt”) 应该返回 undefined。
add(2, “3”) 应该返回 undefined。
add(2)([3]) 应该返回 undefined。

代码:

<script type="text/javascript">
	function add() {
		var x = arguments[0];
		if (typeof(arguments[0]) == 'number' && typeof(arguments[1]) == 'number') {
			return arguments[0] + arguments[1];
		} else if (arguments.length == 1 && typeof(arguments[0]) == 'number') {
			return function(y) {
				if (typeof(y) == 'number' && arguments.length == 1) {
					return y + x;
				}

			};
		} else {
			return undefined;
		}
		return false;
	}
	add(2)(3);
</script>

 

参考资料:https://blog.csdn.net/tian_123456789/article/details/78001423