为了提高我对JavaScript的理解,我开始阅读其他人的源代码。在Github上,我遇到了a script,它在顶部有这个变量声明:
if (has.call(params, key)) {
// stuff
}
稍后在代码中使用它:
has
这怎么工作?实际上,Object.prototype.hasOwnProperty
现在是circle.Calculate(
delegate (double r)
{
return 2 * Math.PI * r;
}
);
的某种别名,但为什么可以将原型方法存储在变量中 - 因为它现在是函数调用,所以没有返回任何内容。
答案 0 :(得分:4)
您没有将函数存储在变量中,您刚刚创建了对该函数的引用。
答案 1 :(得分:4)
函数是Javascript中的一等公民(在其他一些语言中也是如此),这意味着它们可以被赋值给变量,作为参数传递给其他函数以及从函数返回。维基百科的第一类功能有一个很好的部分:https://en.wikipedia.org/wiki/First-class_function