zoukankan      html  css  js  c++  java
  • 关于js作用域问题

    补充:

    function Foo(name,age){
        this.name=name;
        this.age=age;
        this.getName=function(){
            console.log(this);
        }
            
    }
    
    obj = new Foo("文州",19)
    obj.getName()    
    //这里把Foo看成类,大写是类,首字母小写是函数
    
    
    function test(){
        console.log(this);
    }
    
    test()=== window.test()
    //函数执行相当于window.test().所以打印的this是window对象。
    
    (function(){
        console.log(this)
    })()
    
    这个叫自执行函数。this指的还是window。
    
    
    
    
    题目0
    var name="女神"
    function Foo(name,age){
        this.name=name;
        this.age=age;
        this.getName=function(){
            console.log(this);
            
            (function(){
                console.log(this.name)   //自执行函数里面是window对象
            })()
        }
    }
    
    obj = new Foo("文州",19)
    obj.getName() 
    第一次打印文州,第二次打印女神
    
    
    
    想要都打印文州的话
    题目1
    var name="女神"
    function Foo(name,age){
        this.name=name;
        this.age=age;
        this.getName=function(){
            console.log(this);
            var that =this    //把当前环境的this赋值给that.那么这样2个都打印文州
            (function(){
                console.log(that.name)   
            })()
        }
    }
    
    obj = new Foo("文州",19)
    obj.getName() 
    
    //这样2个都执行文州。
    
    题目2
    var name="女神" obj={ name:'文州', age:19, getName:function(){ console.log(this); var that =this (function(){ console.log(that.name) })() } } obj.getName() //这个结果和上面的一样。只是(对象)的声明方式改变了而已。

  • 相关阅读:
    PTA——List Leaves
    pta——电话聊天狂人(c二叉树实现)
    Anti-SG游戏 与 SJ定理笔记(反Nim博弈)
    Unicode代码点与代码单元
    奇偶校验位
    IPv6与IPv4的位数
    0- win10配置java环境变量问题
    小计划
    路径问题
    getResource(path)的注意事项
  • 原文地址:https://www.cnblogs.com/geogre123/p/9792748.html
Copyright © 2011-2022 走看看