小鱼塘--自说自话的地方

  • 小玩意
  • 小想法
记录自己技术和想法地方
  1. 首页
  2. javascript
  3. 正文

javascript this 探索

7 8 月, 2021 2079点热度 0人点赞 0条评论
内容目录

一,背景

自己是以C入门的,然后c++,然后c#,然后java,然后python 然后node js,然后其他。。。对javascript this 理解与以前其他语言有出入,导致使用的时候会遇到this指向问题,我估计对于新手应该都会遇到这个问题。

二,坑

javascript中 funtion是对象,这句话我相信很多新手都会听到,那么自然认为在function 中的this就是指向本身,因为这句话本身是错误,那么我们用this怎么可能是对呢。反正我被同事错误说法误导很多次了。。。

三,代码

<!DOCTYPE html>
<html>
    <script>
        function foo(){
            console.log(this.a)
        }

        var a = "我在windows作用域里面"
        var obj = {
            a:"我在obj的作用域",
            foo: foo
        }

        foo()   //全局作用域 
        obj.foo()   //obj作用域
        var temp_function = obj.foo
        temp_function() //全局,跟调用的时候绑定

        
    </script>
</html>

四,说明

this 是在调用时候绑定,跟敲代码作用域没有关系,而跟调用作用域有关系。

五,书籍

<你不知道的javascript>,看他的第二部分this内容写的这边博客,自己总结一下。


六,补充

可以看mdn 官网权威文档介绍,js 万物皆对象,函数的this是动态绑定,这个跟我们其他高级语言不一样,编译的器已经确定this指向了

this - JavaScript | MDN (mozilla.org)

标签: javascript this
最后更新:10 9 月, 2021

小鱼儿

爱研究技术,爱玩LOL

点赞

COPYRIGHT © 2022 小鱼塘. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备18005349号