总结一下this指向问题:总结一下从学习js基础和js-api阶段所遇到的js指向问题。简单的来记,就是谁调用this就指向谁;
<body>
<button>点击我</button>
<script>
// 1.1普通函数中,this指向的就是window
function fun1() { //函数的声明
console.log(this);
}
fun1();
var fun2 = function() { //函数表达式
console.log(this);
}
fun2();
// 1.2 在构造函数中,this指向的是实例化对象;
function Person(name = 'zs', age = 18) {
this.name = name;
this.age = age;
this.say = function() {
console.log('我会说话');
}
console.log(this); //Person {name: "zs", age: 18, say: ƒ}
}
var per1 = new Person(); //实例化对象
per1.name = 'zq';
per1.age = 23;
per1.say();
// 1.3 在对象函数中,this指向当前的对象
var obj = {
name: 'zs',
age: 15,
say: function() {
console.log('说话');
console.log(this); //
}
}
obj.say();
// 1.4 事件函数中,this指向事件源;
// 事件组成三要素:事件源;事件类型:事件的触发方式;实践处理程序;
var btn = document.querySelector('button');
btn.onclick = function() {
console.log(1111);
console.log(this); //<button>点击我</button>
}
</script>
</body>