标签:array size 就会 col 子类 操作 cti 对象类型 个数
函数是一种封装,在任何语言中都是一个核心概念。在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; }
标签:array size 就会 col 子类 操作 cti 对象类型 个数
原文地址:https://www.cnblogs.com/keliguicang/p/10960733.html