前言
本系列主要整理前端面试中需要掌握的知识点。本节介绍JS中this对象应该怎么理解。
一、JS中的this定义
- this 关键字是函数运行时自动生成的一个内部对象,只能在函数内部使用,总指向调用它的对象;
- 在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定);
- 在严格模式和非严格模式之间也会有一些差别。
二、绑定规则
1. 默认绑定
var name = 'Fanafan';
function person(){
var name = "Fanafan2"
return this.name
}
console.log(person()); //Fanafan 原因是调用函数的对象在游览器中位window,因此this指向window
严格模式下,不能将全局对象用于默认绑定,this会绑定到undefined,只有函数运行在非严格模式下,默认绑定才能绑定到全局对象
2. 隐式绑定
function test(){
console.log(this.x);
}
var obj = {
};
obj.x = 1;
obj.m = test;
obj.m()