这是一个简化的例子,但目标是让一个函数在给定一组参数的情况下返回一个函数,并且返回的函数应该将这些参数扩展为数字/字符串。
此处的示例返回一个函数,该函数检查一组坐标是否在矩形内:
function createFunction(startX, startY, width, height) {
return function(x, y) {
if (x >= startX && x <= startX+width && y >= startY && y <= startY+height) {
return true;
}
return false;
};
}
var myFunction = createFunction(5, 10, 200, 100);
console.log(myFunction); //startX and the other arguments aren't expanded
上面评论中描述的问题是来自“createFunction”函数的参数没有扩展为值,如果使用返回的函数,它会产生错误,因为startX和其他参数不是全局定义的
如何返回扩展变量的函数?