Function简介

Function类型

概述

函数是这样的一段JavaScript代码,它只定义一次,但可能被执行或调用多次。

Function类型是JavaScript提供的引用类型之一,通过Function类型创建Function对象。
在JavaScript中,函数也是以对象的形式存在的。
每个函数都是一个Function对象。函数名,本质就是一个变量名,是指向某个Function对象的引用。
在JavaScript中,函数除了可以通过函数定义语句或字面量表达式两种方式定义之外,还可以通过Function类型进行定义:

var add = new Function(
	"num1",
	"num2",
	"var sum = num1+num2; return sum; "
);

Function的apply()方法用于调用一个函数,并且接收指定的this值,以及一个数组作为参数。其语法结构如下:

func.apply(thisArg,[argsArray])

thisArg参数:可选项,在func函数运行时使用的this值。
argsArray参数:可选项,一个数组或者类数组对象,其中的数组元素将作为单独的参数传给func函数。也可以使用argunents对象作为该参数。
返回值:调用该函数的返回结果。

var numbers = [5,6,2,3,7];
//通过apply()方法获取数组中最大值和最小值
var max = Math.max.apply(null, numbers) ;
var min = Math.min.apply(null, numbers);

Function的call()方法用于调用一个函数,并且接收指定的this值作为参数,以及参数列表。其语法结构如下:

func.call(thisArg,arg1,arg2, ...)

thisArg参数:在func函数运行时使用的this值。

arg1, arg2,…参数:指定的参数列表。
返回值:调用该函数的返回结果。
apply与call非常相似,不同之处在于提供参数的方式。

//通过call()方法获取数组中最大值和最小值
var max = Math.max.call(null, 56237);
var min = Math.min.call(null, 56237);

Function的bind()方法用于创建一个新的函数(称为绑定函数),并且接收指定的this值作为参数,以及参数列表。其语法结构如下:

fun.bind(thisArgl,arg1[, arg2[,...]])

thisArg参数:当绑定函数被调用时,该参数会作为原函数运行时的this指向。

arg1, arg2, …参数:当绑定函数被调用时,这些参数将置于实参之前传递给被绑定的方法。

返回值:返回由指定的this值和初始化参数改造的原函数拷贝。

Function的bind方法示例如下:

this.x = 9;
var module = {
	x: 81,
	getx: function() {
	 	return this.x; 
	}
};
module.getx();// 返回81 
var retrievex = module.getx;
retrievex(); // 返回9,在这种情况下,"this"指向全局作用域
// 创建一个新函数,将"this"绑定到module对象
var boundGetX= retrievex.bind(module);
boundGetX();// 返回81

在其他开发语言中,函数具有一种特性,叫做重载。所谓重载,就是定义多个同名的函数,但每一个函数接收的参数的个数不同,程序会根据调用时传递的实参个数进行判断,具体调用的是哪个函数。如下示例:

function add( a, b ){
return a + b;
}
function add( a, b, c ){
return a + b +c;
}
add( 12 );//结果为3
add( 1,23 ) ;//结果为6
今日金句

路是自己选的,咬着牙也得走完。

今日心情

随着任务量的加大,心理有点反感,不过最重要的一点是自己感觉自己很菜,但仔细想想也不是学不会。(自我施压)

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bliss小宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值