如何指定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>

上一篇:长时间蓝屏的问题解决:使用ST7567控制器的LCD液晶显示模组的软件优化


下一篇:ListView的Items绑定和comboBox和CheckBox组合使用实现复选框的功能