JavaScript是一门非常灵巧的面向对象的开发语言,函数作为“第一公民”有很多方面的特殊应用手段,比如bind、apply、call等方法函数,它们的使用方式、传递参数都是一样的,也有区别。通过它们的使用,在以后面向对象的开发、建模、多态应用上会有很好的表现手段。
不同的是: bind:绑定this的指向,然后返回一个新函数,返回的对应方法不会立即执行,需要调用才执行 call、apply:改变this的指向,调用是立即执行的。
apply和call的不同点: 1、call:接收的参数是逐个传入的; 2、apply:接收的是参数数组。
注意:当第一个参数为null时,非严格模式下(默认情况),this指向window;严格模式("use strict"),this指向null。
举例:
//函数返回一个对象,包括给定参数的最大值、最小值、总和、平均值
var funcA=function(...arg){
var valRang={
max:0,
min:0,
total:0,
average:0
}
valRang.max=Math.max.call(null,...arg);
valRang.min=Math.min.call(null,...arg);
valRang.total=(function(){
var x=0;
for(var i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?