Javascript学习笔记——8.4 作为值的函数

在Javascript中,函数不仅是一种语法也是值,可以将函数赋值给变量,存储在对象的属性或数组的元素中,还可以作为参数传入另外一个函数。

function square(x){return x*x}

上面的函数声明创建了一个函数对象,并将其值赋给square这个变量。也就是说square只是指向这个函数的一个变量。

函数对象作为值还可以赋值给其他变量

function square(x){return x*x}
var fun = square
fun(4) //16

可将函数直接作为对象直接量的属性或者数组的元素

var o = {x:24, square:function(x){return x*x}}
o.square(o.x) //576

var a = [function(x){return x*x}, 'hello', 22]
a[0](a[2]) //484

函数可以作为参数传入其他的函数

function add(x,y){return x+y}
function multiply(x,y){return x*y}
function operate(calculate,x,y)
{
    return calculate(x,y)
}
operate(add,21,15) //36
operate(multiply,7,9) //63

函数不是原始值,是一种特殊的对象,所以它也可以有属性。所以可以通过给函数对象设置静态变量来给函数一个固定值,比全局变量更为合理。

你可能感兴趣的:(Javascript学习笔记——8.4 作为值的函数)