一、思维导图

二、demo理解
1.new绑定
function fn(age) {
this.age = age
}
const result = new fn('张三')
console.log('result',result.age)
var age = '18'
function Age(age) {
this.age = age
this.fn = function() {
console.log(this.age)
return function() {
console.log(this.age)
}
}
}
var Age2 = {
age: '15',
fn: function() {
console.log(this.age)
return function() {
console.log(this.age)
}
}
}
var result = new Age('20')
result.fn()()
Age2.fn()()
20
18
15
18
function fn(age) {
this.age = age
return {}
}
var a = new fn('18')
console.log(a.age)
function fn(age) {
this.age = age
return 2
}
var a = new fn('18')
console.log(a.age)
function fn(age) {
this.age = age
return 2
}
var a = new fn('18')
console.log(a.age)
2.默认绑定
let、const声明的变量不会被绑定的window对象上
let a = 10
const b = 20
function foo () {
console.log(this.a) console.log(this.b)
}
foo()
console.log(window.a)
输出结果均为:undefined
3.隐式绑定
var name = 'outer'
function a() {
console.log('hello', this.name)
}
var person = {
name: 'personinner',
a: a
}
var result = person.a
result()
[juejin.cn/post/704714…]