js中的call() apply() bind()的用法

news/2024/7/24 13:03:16 标签: javascript, 开发语言

call() apply() bind() 都是用来重定义this这个对象的,不能改变箭头函数中的this指向

bind方法多了一个括号,bind返回的是一个新的函数,必须调用才能够执行

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>call_apply_bind的区别</title>
</head>

<body>

</body>
<script>
  var name = '小王', age = 17
  var obj = {
    name: '小张',
    objAge: this.age,
    myFun: function () {
      console.log(this.name + "年龄" + this.age)
    },
    myFun2: function (fm, t) {
      console.log(this.name + "年龄" + this.age, "来自" + fm + "去往" + t)
    }

  }
  var db = {
    name: '小行家',
    age: 99
  }
  obj.myFun.call(db)
  obj.myFun.apply(db)  // 参数以数组的形式进行传递
  obj.myFun.bind(db)()

// 在参数传递中使用apply的时候参数是以数组的形式进行传递的  这三者传递惨淡胡对参数的类型没有限制
  obj.myFun2.call(db, '成都', '上海')
  obj.myFun2.apply(db, ['上海', '北京'])  // 参数以数组的形式进行传递
  obj.myFun2.bind(db, '北京', '拉萨')()
  // 不进行数据类型的限制
</script>

</html>

http://www.niftyadmin.cn/n/5066628.html

相关文章

黑马程序员 MySQL数据库入门到精通——进阶篇(2)

黑马程序员 MySQL数据库入门到精通——进阶篇&#xff08;2&#xff09; 1. SQL优化1.1 插入数据1.2 主键优化1.3 order by优化1.4 group by优化1.5 limit优化1.6 count优化1.7 update优化 2. 视图2.1 视图-介绍及基本语法2.2 视图-检查选项(cascaded)2.3 视图-检查选项(local)…

springboot 集成 PageHelper 分页失效

前言 项目启动初期&#xff0c;在集成mybatis的分页插件&#xff0c;自定义封装了一个分页的工具类&#xff0c;方便后期项目的扩展。部分的代码如下&#xff1a; /*** 分页查询* 进行count计算** param pageNum 页数* param pageSize 每页数量* param supplier 查询操作* re…

Python之json的dump和dumps方法

一&#xff0c;dumps 将字典转换为字符串 info_dcit {foo1:a, foo2:b, foo3:c, } data_dumps json.dumps(info_dcit, indent4) print(data_dumps) # data_dumps: <class str>data_dumps: {"foo1": "a","foo2": "b","…

力扣 -- 377. 组合总和 Ⅳ

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int combinationSum4(vector<int>& nums, int target) {int nnums.size();vector<double> dp(target1);//初始化dp[0]1;//填表for(int i1;i<target;i){for(int j0;j<n;j){//填表if(…

云原生定义整理

云原生定义整理 Pivotal 是云原生应用的提出者&#xff0c;并推出了 Pivotal Cloud Foundry 云原生应用平台和 Spring 开源 Java 开发框架&#xff0c;成为云原生应用架构中先驱者和探路者。 Pivotal最初的定义 Pivotal公司的Matt Stine在2015年写了一本叫做<<迁移到云…

接口自动化中如何完成接口加密与解密?

加密是一种限制对网络上传输数据的访问权的技术。将密文还原为原始明文的过程称为解密&#xff0c;它是加密的反向处理。在接口开发中使用加密、解密技术&#xff0c;可以防止机密数据被泄露或篡改。在接口自动化测试过程中&#xff0c;如果要验证加密接口响应值正确性的话&…

计算机网络(文章链接汇总)

参考引用 计算机网络微课堂-湖科大教书匠计算机网络&#xff08;第7版&#xff09;-谢希仁 计算机网络&#xff08;一&#xff09;&#xff1a;概述计算机网络&#xff08;二&#xff09;&#xff1a;物理层计算机网络&#xff08;三&#xff09;&#xff1a;数据链路层计算机网…

Django的模版使用(Django-03)

一 模版的使用 模板引擎是一种可以让开发者把服务端数据填充到html网页中完成渲染效果的技术。它实现了 把前端代码和服务端代码分离 的作用&#xff0c;让项目中的业务逻辑代码和数据表现代码分离&#xff0c;让前端开发者和服务端开发者可以更好的完成协同开发。 静态网页&…