一 如果是键头函数, 在执行时this跟父级作用域一致 二 如果是普通函数,作为事件的回调函数被执行this 会指向事件发生的元素; 如果有点,那么就指向点前面的那个值;
const obj = { name: 'objectName', saying() { console.log(this.name); }, reading: () => { console.log(this.name); } } obj.saying(); // objctName obj.reading(); // undefined
作为方法来调用 var name="windowName"; var person={ name:"personName", showName:function(){ console.log(this.name); } }
person.showName(); //输出 persoName
//这里是person对象调用showName方法,很显然this关键字是指向person对象的,所以会输出name
var showNameA=person.showName;
showNameA(); //输出 windowName
//这里将person.showName方法赋给showNameA变量,此时showNameA变量相当于window对象的一个属性,因此showNameA()执行的时候相当于window.showNameA(),即window对象调用showNameA这个方法,所以this关键字指向window