zoukankan      html  css  js  c++  java
  • JavaScript基础概念之----this关键字

    创建函数时,系统会(在后台)创建一个名为 this 的关键字,它链接到运行该函数的对象。

    var person = {
        name:'adhehe',
        age:23,
        getName:function(){
         // return person.name
    return this.name } } //person.getName() 输出adhehe

    this 值会被传递给所有函数,其值基于在运行时调用函数的上下文。

    var a = 1;
    var o = { a:2 }
    var func = function(){
        return this['a']
    }
    
    o.func = func;
    
    o.func() //输出2
    func() //输出1

    在嵌套函数中使用this关键字,引用head对象(即window)

    var o = {
        func1:function(){
            console.log(this) //输出o
            
            var func2 = function(){
                console.log(this) //输出window,从此处开始this都是window对象
    
                var func3 = function(){
                    console.log(this) //输出window
                }()
            }()
        }
    }

    o.func1()

    当匿名函数在函数内部调用时,匿名函数内的this值将是对head对象的引用(即window)

    var o = {
        func1:function(func){
            func(); //输出window
            console.log(this) //输出o
        }
    }
    
    o.func1(function(){
        console.log(this)
    })

    可以简单地在父函数中使用作用域链来保留对 this 的引用。

    var o = {
        func1:function(){
            var that = this;
            console.log(this) //输出o
            
            var func2 = function(){
                console.log(that) //输出o
    
                var func3 = function(){
                    console.log(that) //输出o
                }()
            }()
        }
    }
    
    o.func1()

    使用 new 关键字调用函数时,this 值引用实例本身。

    原型方法内的this关键字引用构造函数实例,即在prototype对象中的方法内部使用this关键字时,this可用于引用实例。如果该实例不包含所要查找的属性,则继续在原型上查找。

  • 相关阅读:
    使用iText 7读取PDF文件中的文本和图片
    登记或取消登记盈亏库存日记账行数量
    uni-app(未完)
    javaScript的基本优雅写法
    ModuleFederation-模块联邦
    typescript
    img标签src图片路径根目录问题
    开源工具分享
    软件缺陷的度量、分析和统计
    MIT6.824 2020 Lab2 A Raft Leader Election
  • 原文地址:https://www.cnblogs.com/adhehe/p/9786606.html
Copyright © 2011-2022 走看看