js中的this和arguments.callee

this和 arguments.callee

this

全局作用域下,this指向Window
其他情况下,谁调用this就指向谁

        console.log(this)
        //对调用就指向谁系列
        function demo(){
        console.log(this) //全局作用域下指向window
        }
        demo()
        name = 'charry'
        var obj = {
            name: 'ghost',
            say: function(){
                console.log(this.name)
                console.log(this)
            }
        }
        obj.say() // ghost this指向obj,obj调用say方法
        var func = obj.say 
        func() //charry this指向window,全局调用

arguments.callee

存在函数内部指向函数本身

        //arguments.callee
        function test(){
            console.log(arguments.callee)
        }

     test() // 输出函数本身,arguments.callee指向函数本身
        function demo(n){
            if (n == 1){
                    return 1 
                }else{
               
                    return n*arguments.callee(n-1)
            
                }   
        
        }
        demo(10)
posted @ 2019-08-20 15:23  ghostdot  阅读(427)  评论(0编辑  收藏  举报