为什么不能使用 new 创建箭头函数对象
箭头函数不可以使用 'new' 关键字来创建对象的原因有以下两点:
-
没有 'prototype' 属性:箭头函数本身没有 'prototype' 属性。使用 'new' 关键字创建对象时,会通过构造函数的 'prototype' 属性来设置新对象的原型。然而,箭头函数没有 'prototype' 属性,因此不能被用作构造函数来创建对象。
-
没有 'this' 绑定:箭头函数的 'this' 指向是词法上绑定的,即它会继承所在上下文的 'this' 值。而使用 'new' 关键字创建对象时,会创建一个新的对象并将其绑定到构造函数中的 'this' 上。因为箭头函数没有自己的 'this' 绑定,而是继承外部上下文的 'this',所以在箭头函数中使用 'new' 关键字创建对象时,继承的外部 'this' 值将被忽略。
综上所述,箭头函数没有构造函数的特性,没有 'prototype' 属性和自身的 'this' 绑定,因此不能用 'new' 关键字来创建对象。如果尝试在箭头函数上使用 'new' 关键字,会导致 'TypeError' 错误。
原文地址: https://www.cveoy.top/t/topic/Qah 著作权归作者所有。请勿转载和采集!