js函数-构成
Posted keliguicang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js函数-构成相关的知识,希望对你有一定的参考价值。
前言
函数是一种封装,在任何语言中都是一个核心概念。在js中,函数是做为对象的子类型存在的。可以拥有自己的属性和方法,可以做为值进行传递,这两个特性让js拥有使用函数式编程的能力。
函数的声明
字面量声明:就是使用function关键字后面跟上固定语法。
function fnName(option1,option2) // 这里是代码块
作为函数表达式:只要函数出现的地方,不是函数本身的function 关键字打头的,都叫函数表达式。
// 作为函数表达式的函数
var fn = function()
函数的构成
形参:函数定义的时候在小括号里面定义的参数列表。用来接收实际参数。
实参:实际调用函数的时候传入的参数。
return:结束函数执行的同时把后面 跟着的值返回出去,作为函数的产出。是可选的。不显示返回参数的话执行后会默认返回undefined。
函数的执行:函数表达式后跟一对圆括号()就会执行。
作为对象的函数:js中的函数作为对象类型是可以拥有自己的属性的。
// 一个做作的加法函数
function add(a,b)
return add.calculate();
// 为作为对象的函数定义一个calculate属性 这个属性的值指向一个匿名的function。
add.calculate = function()
let num = 0;
Array.prototype.map.call(this.arguments,function(item)
num += item;
)
return num;
console.log(add(1,3)); // 4
函数的两个属性
js中函数的形参和实际运行时传入的实参个数可以是不对等的。默认的从左到右一一对应,多传或少传也不会报错的。
arguments:可以在函数体内通过函数名访问argument获得函数运行时的实参列表。
length:可以获取函数定义时,指定的形参个数。
使用arguments定义一个重载的函数(根据不同实参个数做不同操作,jq的重载从概念上是这么干的)
function getSum() // 获取实参列表 var arg = getSum.arguments; // 没有参数就直接返回 -1 if(arg.length === 0)return -1 // 只有一个参数就直接返回这个参数 if(arg.length === 1) return arg[0]; var sum = 0; Array.prototype.map.call(arg,function(item) // item就是实参 sum += item; ) return sum;
以上是关于js函数-构成的主要内容,如果未能解决你的问题,请参考以下文章