为什么没有定义全局变量,却能打印出数字

问题描述:下面代码中 var c=a.b;c(),c()在全局中调用,this指向window,而window下并没有定义name变量,为什么全局调用c()输出的是1而不是undefined

var a={
   name:2,   b:function(){
    this.name++
    console.log(this.name) 
   } 
} 
a.b()//3
 var c=a.b
 c()//1


素胚勾勒不出你
浏览 227回答 3
3回答

慕雪6442864

var c=a.b的时候,this指向的是window,所以window下定义了一个全局的name
打开App,查看更多内容
随时随地看视频慕课网APP