2022-10-24 this

image.png
   <script>
        var a = '111111'
        var obj = {
            a: 1,
            b: function () {
                console.log(this)
                console.log(this.a)
            },
            c: function () {
                let that = this
                return function () {
                    console.log(that)
                    console.log(that.a)
                }
            },
            d: function () {
                return function () {
                    console.log(this)
                    console.log(this.a)
                }
            },
            e: function () {
                return () => {
                    console.log(this)
                    console.log(this.a)
                }
            },
            f: () => {
                return () => {
                    console.log(this)
                    console.log(this.a)
                }
            }
        }


        obj.b()
        obj.c()()
        obj.d().call(obj)

        obj.d()()
        obj.e()()
        obj.f()()


    </script>

function 函数名(){} //定义
函数名() //执行
xxx。函数名() //等价执行,xxx就是this

obj。d // 得到一个普通函数
obj。d() //普通函数执行得到小普通函数
obj。d()() //小普通函数执行
window。obj。d()()// 等价执行小普通函数,普通函数中的this就是window

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容