这是箭头函数
这在功能上是指用于调用该函数的实例对象,但此在箭头函数等于这其中箭头函数定义的函数。
让我们理解使用图表 https://i.stack.imgur.com/iRsl1.jpg
了解使用示例。
var normalFn = function(){
console.log(this) // refers to global/window object.
}
var arrowFn = () => console.log(this); // refers to window or global object as function is defined in scope of global/window object
var service = {
constructorFn : function(){
console.log(this); // refers to service as service object used to call method.
var nestedFn = function(){
console.log(this); // refers window or global object because no instance object was used to call this method.
}
nestedFn();
},
arrowFn : function(){
console.log(this); // refers to service as service object was used to call method.
let fn = () => console.log(this); // refers to service object as arrow function defined in function which is called using instance object.
fn();
}
}
// calling defined functions
constructorFn();
arrowFn();
service.constructorFn();
service.arrowFn();
在箭头函数中,这是词法范围,它是定义箭头函数的函数范围。
第一个例子是定义函数的传统方式,因此,它指的是全局/窗口对象。
在第二个示例中,这用于箭头函数内部,因此这指的是定义它的范围(即窗口或全局对象)。在第三个示例中,这是服务对象,因为服务对象用于调用函数。
在第四个例子中,箭头函数是从范围为 service 的函数定义和调用的,因此它打印服务对象。
注意: - 全局对象在 Node.Js 中打印,windows 对象在浏览器中打印。