前言
此文章为每日学习总结,仅代表个人见解(如有错误欢迎私信指正)
一、全局作用域中的this指向
全局作用域中的this指向是确定的,指向window。
代码如下(示例):
console.log(this,window)
得到的结果:
二、函数和对象中的this:
1.对象中的this
代码如下(示例):
var obj = {
name: "zs",
age: 20,
sayHello(content, num) {
console.log(this.name + "说:你好" + content + "数字:" + num);
},
};
这里的this指向obj,原因:obj调用了sayHello(),sayHello()中的this就指向了obj。
2.函数中的this
函数中的this规律和对象是一样的,都是谁调用,this就指向谁
代码如下(示例):
function fun2() {
console.log(this);
}
window.fun2(); // window
var obj3 = { name: "王五" };
fun2.call(obj3); // obj3
3.闭包中的this
借助临时的变量把外层outer中的this存储了一下,将来在内层函数使用时,内层函数中self就和外层函数中的this指向一样了。而内层函数中的this具体看谁来调用它。
代码如下(示例):
function outer() {
var a = 10;
var self = this;
return function () {
console.log(self);
console.log(this)
return a;
};
}
var result = window.outer();
var obj5 = {name: "王五3"}
result.call(obj5)
打印结果