'use strict'
const user = {
name: 'Bob',
funcFunc() {
return function () {
console.log(this);
}
},
funcArrow() {
return () => {
console.log(this);
}
},
arrowFunc: () => {
return function () {
console.log(this);
}
},
arrowArrow: () => {
return () => {
console.log(this);
}
},
};
const user2 = {
name: 'Jim',
funcFunc: user.funcFunc(),
funcArrow: user.funcArrow(),
arrowFunc: user.arrowFunc(),
arrowArrow: user.arrowArrow()
}
user2.funcFunc(); //
user2.funcArrow(); //
user2.arrowFunc(); //
user2.arrowArrow(); //
Ответ
'use strict'
const user = {
name: 'Bob',
funcFunc() {
return function () {
console.log(this);
}
},
funcArrow() {
return () => {
console.log(this);
}
},
arrowFunc: () => {
return function () {
console.log(this);
}
},
arrowArrow: () => {
return () => {
console.log(this);
}
},
};
user.funcFunc()(); // undefined
user.funcArrow()(); // user {}
user.arrowFunc()(); // undefined
user.arrowArrow()(); // undefined
const user2 = {
name: 'Jim',
funcFunc: user.funcFunc(),
funcArrow: user.funcArrow(),
arrowFunc: user.arrowFunc(),
arrowArrow: user.arrowArrow()
}
user2.funcFunc(); // user2{}
user2.funcArrow(); // user {}
user2.arrowFunc(); // user2 {}
user2.arrowArrow(); // window