之前学习js时发现this比较难懂,找了一些文章来看,现在自己尝试写一下,看看自己是否真的懂了。
就我自己所理解的,this值存在于函数里面,一般对象是没有的;this的指向有几个规则。1.默认绑定;2.隐式绑定;3.显示绑定;4.new 绑定;
this的指向只有在运行时才能确定而不是定义时;
它们的优先级是:4 > 3 > 2 > 1
箭头函数有点特殊,后面会说到;
1.默认绑定
在没有其他规则下使用的就是默认绑定这个规则;一般指的是独立函数
function fn() {
console.log(‘默认绑定‘, this);
默认绑定下,this指向的全局对象(window)
}
fn();
输出结果:
如果是严格模式下this是指向undefined;
"use strict";
function fn() {
console.log(‘默认绑定‘, this);
}
fn();
2.隐式绑定
一般是指某个对象的方法