美文网首页js日常学习
2019-11-19 js-函数的上下文

2019-11-19 js-函数的上下文

作者: 绿啊绿啊绿刺猬 | 来源:发表于2020-03-13 23:04 被阅读0次

嗯...我真是太爱做笔记了.但是我写的字真的贼丑啊,这辈子可能都练不好了.所以,以后就在这里记录每天学的笔记啦.(呜呜我真的超爱纸笔写出来的感觉啊~)

(ps:我是看视频学习的,听的途中有些重要的会自己在本子上写下来,看完之后自己练习一遍,然后做笔记在这边总结)

函数的上下文

1.函数名+小括号的调用方式,函数上下文是window

            function fn() {
                console.log(this) //window
            }
            fn()

注意下面这种(是叫自调用函数吗忘记了)也是函数名+小括号的方式调用,所以上下文也是window,而不是obj:

           let obj = {
                label: '号码',
                id: 1,
                choose: (function() {
                    console.log(this) //window
                })()
            }

2.定时器和延时器里的回调函数,上下文是window

            setInterval(function() {
                console.log(this)  // window
            }, 1000)
            setTimeout(function() {
                console.log(this) // window
            }, 1000)

3.函数作为事件处理函数,上下文是触发这个事件的元素

            <div id="app">点我</div>
            let oDiv = document.getElementById("app")
            oDiv.onclick = function() {
                console.log(this) // <div id="app">点我</div>
            }
注意:
            let oDiv = document.getElementById("app")
            oDiv.onclick = function() {
                console.log(this) //  <div id="app">点我</div>
            // 在这里备份一下上下文
                let self = this
                setInterval(function() {
                    console.log(this) // window
                    console.log(self) // <div id="app">点我</div>
                },1000)
            }

4.函数作为对象的方法,谁最后打点调用了这个函数,上下文就指向谁

          let obj = {
               label: 1,
               method: function() {
                   console.log(this)
               }
           }
           let inner = obj.method
           obj.method() // obj
           inner() // window

注意下面的小栗子:

           let obj = {
                label: 1,
                method: function() {
                    console.log(this)
                },
            }
            let obj2 = {
                label: 2,
                method: obj.method
            }
            obj2.method() // obj2

5.函数作为数组的元素枚举出来执行,上下文就指向这个数组

           let arr= [1, 'aaa', function() {
                console.log(this)
            }, true]
            arr[2]() // [1, "aaa", ƒ, true](就是arr)

今天先到这儿啦,明天继续学习.要加油呀小朋友~

相关文章

  • 2019-11-19 js-函数的上下文

    嗯...我真是太爱做笔记了.但是我写的字真的贼丑啊,这辈子可能都练不好了.所以,以后就在这里记录每天学的笔记啦.(...

  • 函数上下文

    函数上下文 一、函数执行时,函数的上下文是window. 二、函数作为对象的方法,对象调用方法时,函数的上下文即为...

  • 对js执行上下文的理解

    执行上下文 执行上下文有三种: 全局执行上下文在执行全局代码的时候会创建全局上下文 函数执行上下文在执行函数代码的...

  • JS-函数

    事件驱动模型: 事件(操作,动作) 事件类型(具体的动作类型) 事件源(发生动作的地方) 事件监听器(监听事件发生...

  • JS-函数

    1.定义(1)匿名函数(2)具名函数(3)箭头函数,无this 词法作用域(也叫静态作用域)JS看到上面的代码不是...

  • JS-函数

    1.函数基础 函数参数 函数写法:function func(){}var func=function(){}经常...

  • JS-函数

    函数1.声明 function 函数名(参数1,参数2...){ 函数体 retur...

  • js-函数

    函数

  • JS面向对象--4函数的上下文之五规律

    函数的上下文就是指this是谁规律1:函数用圆括号直接调用 ,函数的上下文是window对象 函数function...

  • JavaScript 中的this

    全局上下文 在全局运行上下文中,this指全局对象。 函数上下文 DOM事件处理函数中的 this 通常来说,th...

网友评论

    本文标题:2019-11-19 js-函数的上下文

    本文链接:https://www.haomeiwen.com/subject/ggmiictx.html