为什么可以在变量中存储原型函数?

时间:2015-08-28 18:34:04

标签: javascript

为了提高我对JavaScript的理解,我开始阅读其他人的源代码。在Github上,我遇到了a script,它在顶部有这个变量声明:

if (has.call(params, key)) {  
    // stuff
}

稍后在代码中使用它:

has

这怎么工作?实际上,Object.prototype.hasOwnProperty现在是circle.Calculate( delegate (double r) { return 2 * Math.PI * r; } ); 的某种别名,但为什么可以将原型方法存储在变量中 - 因为它现在是函数调用,所以没有返回任何内容。

2 个答案:

答案 0 :(得分:4)

您没有将函数存储在变量中,您刚刚创建了对该函数的引用。

答案 1 :(得分:4)

函数是Javascript中的一等公民(在其他一些语言中也是如此),这意味着它们可以被赋值给变量,作为参数传递给其他函数以及从函数返回。维基百科的第一类功能有一个很好的部分:https://en.wikipedia.org/wiki/First-class_function