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可用于引用实例。如果该实例不包含所要查找的属性,则继续在原型上查找。

  • 相关阅读:
    常用函数工具记录贴
    phpCAS::handleLogoutRequests()关于java端项目登出而php端项目检测不到的测试
    Cas服务器设置(java),java、php客户端配置
    android导入项目出现R文件不能生成
    Error executing aapt: Return code -1073741819
    网页在线播发视频 在线查看文档
    jeecg的cq查询方式
    威佐夫博弈
    HDU 1850 (尼姆博奕)
    HDU2149 (巴什博弈)
  • 原文地址:https://www.cnblogs.com/adhehe/p/9786606.html
Copyright © 2011-2022 走看看