函数中this的指向是不确定的,只有在函数执行时才能确定,它指向调用该函数的对象
var a = 'a'
var b = 'b' function f(){ console.log(this) //window console.log(this.a) //a console.log(this.b) //b console.log(this.c) //undefined this指向window,window中没有c var a = 'aa' b = 'bb' var c = 'cc' console.log(this.a) //a 函数中定义变量a,但是this.a为window.a console.log(this.b)//bb window中的变量b在函数体内被改变 console.log(this.c) //undefined this指向window,window中没有c console.log(window.a) //a console.log(window.b) // bb window中的变量b在函数体内被改变 console.log(window.c) //undefined this指向window,window中没有cconsole.log(a) //aa
console.log(b) //bb console.log(c) //cc}
f()这里调用函数f的对象是window,函数内部的this为window
var o = { name: 'lll', getName:function(){ console.log(this.name) }}o.getName() // lllvar m = o.getNamem() //此时this指向window
构造函数
function P(){ this.name = 'ppp'}var p = new P()console.log(p.name)
new关键字改变this的指向