这是我正在努力的示例代码:
function greaterThan(x) {
return function(y) {
return y > x;
};
}
var greaterThanTen = greaterThan(10);
show(greaterThanTen(9));
有没有办法用数学术语或遵循流程或其他方式? 我不知道为什么 10 是 x 而 9 是 y。
这是我正在努力的示例代码:
function greaterThan(x) {
return function(y) {
return y > x;
};
}
var greaterThanTen = greaterThan(10);
show(greaterThanTen(9));
有没有办法用数学术语或遵循流程或其他方式? 我不知道为什么 10 是 x 而 9 是 y。
在行中:
var greaterThanTen = greaterThan(10);
您将变量 x 赋值为 10,然后将该函数存储在更大的变量中,以便稍后调用。这意味着:
greaterThanTen = function(y) {
return y > 10;
};
所以当你这样做时:
greaterThanTen(9); #y = 9
您正在调用:
return 9 > 10;
这个函数不调用函数,它返回一个函数。
此代码正在创建一个新的一元函数,其中原始二进制(大于)运算符的右侧操作数被预绑定到特定值。
在 Javascript 中,绑定发生是因为参数x
in的提供值greaterThan
永久保留在返回的内部函数(或“闭包”)的范围内。
所以,当你打电话时:
var greaterThanTen = greaterThan(10);
您现在拥有的是一个新函数(名为greaterThanTen
),它始终将其单个参数与边界值 10 进行比较。
因此:
greaterThanTen(9);
将返回false
。
greaterThan(10)
function(y){return y > x}
因此,当您调用 时greaterThan(10)
,该函数返回一个局部变量x
设置为 10 的函数。
var greaterThanTen = greaterThan(10)
等于:
var greaterThanTen = function(y){return y > 10};
完成,greaterThanTen(9)
被称为,等于9 > 10
,这是错误的。
GreaterThan唯一要做的就是为x in设置一个值
函数(y){返回(y>x);}
并将生成的函数存储在变量名中,在本例中为GreaterThanTen,现在包含内容
函数(y){返回(y>10);}
调用GreaterThanTen(9)与查看相同
函数(y = 9){返回(y>10);}
这与
函数(y = 9){返回(9>10);}
这是错误的。因此返回false。
编辑:
此处返回函数的函数示例:http: //i.imgur.com/aiHSH.jpg(x 和 y 在 y>x 中切换)
合十礼
该greaterThanTen
变量表示一个函数,该函数采用一个参数并返回一个布尔值,无论该参数是否大于 10。