call, apply,bind的区别
           相同点:都可以用来改变this指向
          不同点:
          call, apply:传参方式不同;
          call从第二个参数开始都是传给函数的;
          apply只有两个参数,第二个参数是数组,数组中的值都是传给函数。
          call与apply改变函数的this指向后会立即执行
          bind是改变函数的this指向并返回这个函数,并不会立即执行
          call与apply的返回值是函数的执行结果,bind的返回值是改变this指向的拷贝
举例:
var person = {
names: 'Anne',
age: '23'
}
var sayHi = function (gender, hobbit) {
console.log(`我是${this.names},今年${this.age},爱好${hobbit},欢迎你的关注^_^`)
}
sayHi.call(person, 23, '前端开发') var person1 = {
names: 'Anne1',
age: '23'
}
var sayHi1 = function (gender, hobbit) {
console.log(`我是${this.names},今年${this.age},爱好${hobbit},欢迎你的关注^_^`)
}
sayHi1.apply(person1, [23, '吃吃喝喝^_^']) var person2 = {
names: 'Anne2',
age: '23'
}
var sayHi2 = function (gender, hobbit) {
console.log(`我是${this.names},今年${this.age},爱好${hobbit},欢迎你的关注^_^`)
}
sayHi2.bind(person2, 23, '旅游')()
call, apply适用场景:
  看参数数量,参数越多,最好用apply,将参数放入数组中,进而函数调用,参数少的话,call就行了
 

call, apply,bind的区别与用法的更多相关文章

  1. call、apply/bind的区别和用法(简单粗暴的解释)

    var obj1={ name:"bob", age:20 } var obj2={ name:"coco", age:22 } function getAge ...

  2. apply/call/bind的区别与用法

    apply 方法/call 方法 obj.call(thisObj, arg1, arg2, ...);obj.apply(thisObj, [arg1, arg2, ...]); 两者作用一致,都是 ...

  3. 细说 call、apply 以及 bind 的区别和用法

    call 和 apply 的共同点 它们的共同点是,都能够改变函数执行时的上下文,将一个对象的方法交给另一个对象来执行,并且是立即执行的. 为何要改变执行上下文?举一个生活中的小例子:平时没时间做饭的 ...

  4. js 中call,apply,bind的区别

    call.apply.bind方法的共同点与区别: apply.call.bind 三者都是用来改变函数的this对象的指向: apply.call.bind 三者都可以利用后续参数传参: bind ...

  5. call apply bind的区别

    都是天生自带的内置方法(Function.prototype),所有的函数都可以调取这三个方法,改变this指向 call 语法:fn.call(context,para1......) 把fn方法执 ...

  6. call apply bind 的区别

    1.call和apply都是对函数的直接调用,而bind方法返回的仍然是一个函数,因此后面还需要()来进行调用才可以 var xw={ name: "小王", gender: &q ...

  7. 浅谈call apply bind的区别

    这三个方法的用法非常相似,将函数绑定到上下文中,即用来改变函数中this的指向.举个例子: var zlw = { name: "zlw", sayHello: function ...

  8. JS中call,apply,bind的区别

    1.关于this对象的指向,请看如下代码 var name = 'jack'; var age = 18; var obj = { name:'mary', objAge:this.age, myFu ...

  9. 关于call和apply函数的区别及用法

    call和apply函数是function函数的基本属性,都可以用于更改函数对象和传递参数,是前端工程师常用的函数.具体使用方法请参考以下案列: 例如: 申明函数: var fn = function ...

  10. js中 call() 和 apply() 方法的区别和用法详解

    1.定义 每个函数都包含俩个非继承而来的方法:call() 和 apply()   call 和 apply 可以用来重新定义函数的的执行环境,也就是 this 的指向:call 和 apply 都是 ...

随机推荐

  1. [OpenCV实战]40 计算机视觉工具对比

    文章目录 1 简介 2 适用于计算机视觉的MATLAB 2.1 为什么要使用MATLAB进行计算机视觉:优点 2.2 为什么不应该将MATLAB用于计算机视觉:缺点 3 适用于计算机视觉的OpenCV ...

  2. vertica 7.0 使用kafka

    config.propertiesclient.id设置为主机名或ip auto.offset.reset=smallest client.id=qas 设置环境变量 kafka_config=&qu ...

  3. 算法竞赛向 C++ Standard Library 使用速查

    因网络上 STL 教程大多零散且缺乏严谨性,本文对算法竞赛所需 C++ Standard Library 做了一个较为全面的总结. 全文主要参考以下文档: Containers library - c ...

  4. angular---处于激活状态的路由加样式

  5. JavaScript 中更安全的 URL 读写

    前言 URL对于我们开发人员来讲,应该是非常熟悉了.在对URL进行参数拼接时,我们一般都会直接进行字符串拼接或使用模版字符串,因为这样非常方便,但是我们这样其实会在不知不觉中以不安全的方式编写 URL ...

  6. Java语言的跨平台性-JDK,JRE和JVM

    Java语言的跨平台性 1 Java虚拟机--JVM JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境, ...

  7. 1、Spring源码环境搭建

    本文目的 完成Spring Framework5.x的源码构建 准备 官网:Spring Framework 使用5.x版本源码包构建 项目管理工具 gradle(没学过的先去找资料学习) 说明 Sp ...

  8. Kubernetes环境cert-manager部署与应用

    本作品由Galen Suen采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可.由原作者转载自个人站点. 概述 本文用于整理基于Kubernetes环境的cert-manager部 ...

  9. spring-in-action-day04-配置属性 @ConfigurationProperties

    1.Spring环境抽象的概念 2.怎么配置属性.在application.yml举例一些常用的配置 3.自定义配置属性@ConfigurationProperties(prefix = " ...

  10. Spring IOC官方文档学习笔记(十)之类路径扫描与组件管理

    1.@Component注解与其衍生注解 (1) 在Spring中,@Component注解用于说明某个类是一个bean,之后Spring在类路径扫描过程中会将该bean添加至容器中;@Compone ...