当前位置: 首页 > article >正文

如何指定this的值

1. 函数调用时指定

call -- 接收一个参数列表

apply -- 接收一个参数数组

2. 创建时指定this的值

bind -- 返回一个函数  传参方式与call相同

箭头函数 -- 其this值取决于上级作用域中的this值

<script>
        // 如何指定this的值
        // 1. 调用时指定this
        // 2. 创建时指定this

        // 1. 调用时指定this
        function fun(num1, num2) {
            console.log(this)
            console.log(num1, num2)
        }
        const person = {
            name: 'hjy'
        }
        // 1.1 call
        fun.call(person, 1, 2)
        // 1.2 apply
        fun.apply(person, [3, 4])

        // 2.创建时指定this
        // 2.1 bind  返回一个函数
        const bindFun = fun.bind(person, 5) // 此处可传递多个参数 不一定是一个
        bindFun(6)
        // 2.2 箭头函数 
        const food = {
            name: '新疆炒米粉',
            eat() {
                console.log(this)  //为food 取决于调用的对象  
                setTimeout(() => {
                    console.log(this)  // 为food  取决于外部作用域的this值
                }, 1000)
                setTimeout(function () {
                    console.log(this)  // 为全局对象(window)
                }, 1000)
            }
        }
        food.eat()
    </script>


http://www.kler.cn/a/349484.html

相关文章:

  • Spring Boot在医疗行业B2B平台中的创新实践
  • Gravity CCT ALS Meter的色温与照度精度测试报告
  • IO编程--拷贝文件、文件总行数输出、时间打印
  • CentOS 7中将一个用户添加到 `sudoers` 文件,使其具备使用 `sudo` 命令的权限
  • 承兑汇票识别接口C#部署示例代码、银行承兑汇票api
  • HAProxy+Keepalived
  • docker login 命令登录harbor镜像仓库(含报错)
  • 03 视频编解码器
  • 闪电麦昆 语音控制齿轮行进轨迹,ESP32搭配语音控制板,串口通信,附视频演示地址
  • 决策树(1)
  • 从零开始学英语:三个月学习计划(每天30分钟到1小时)
  • 远峰科技申请内存空间分配专利,实现内存空间合理自动化分配
  • 爬虫实战总结
  • 【Vue】Vue扫盲(三)计算属性和监听器
  • Leetcode 划分字母区间
  • 深度学习(7):RNN实战之人名的国籍预测
  • 【论文翻译】HTVGNN:一种用于交通流量预测的混合时间变化图神经网络
  • Shell实战之chmod权限讲解
  • 一键快捷回复软件助力客服高效沟通
  • navicat~导出数据库密码