美文网首页
2018-06-27 360(面试题)

2018-06-27 360(面试题)

作者: Mo_ham_med | 来源:发表于2018-06-27 15:23 被阅读0次

// 360  面试题
    window.val = 1;

    var obj = {


        val :2,

        dbl:function(){
            
            console.log()

            this.val *= 2

            val *= 2;

            console.log(val);

            console.log(this.val);






        }




    }

    obj.dbl(); 

    var func = obj.dbl;

    func()



//  最后的 执行 结果是     2  4   8    8  

自己的解释 :


    //  首先   window.val    是    全局变量。

    //  obj   下  的  val   是   obj  这个 对象 下的 变量 , 


    //  this.val  *=  2      是   obj 下的  val    也就是   结果  就是    4

    //   val  *=   2        是    全局 变量    在 函数中 没有用  val  let  const  声明, 直接 赋值的 是   全局 变量。   结果是   2  



    //   func() 

    //   obj.dbl   是把   dbl  这个  函数   拿出来了, 不在  obj下 。  

    //   所以  this.val   和   val    都是 全局 变量    由于  第一次执行  之后   val 这个 全局 变量  被改变成了 2    ,  

    //  this.val *= 2    结果是   4     现在 全局变量    是    4   ,val *= 2  结果是  8  

    //  下面 两次   console.log() 的  都是  一个  值,  都是 全局 的  val

    //  所以 第二次  执行的  结果 是   8    8 。 


相关文章

网友评论

      本文标题:2018-06-27 360(面试题)

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