理解JavaScript函数调用和this

多年来,我看到很多关于JavaScript函数调用的混淆。特别是,很多人抱怨this函数的语义令人困惑。

在我看来,通过理解核心函数调用原语,然后查看在该原语之上调用函数作为

this和箭头函数

箭头函数能保存函数创建时的 this值,而不是调用时的值

更好事情是,TypeScript会警告你犯了一个错误,如果你给编译器设置了–noImplicitThis标记。 它会指出 this.suits[pickedSuit]里的this的类型为any。

到目前为止,我们已经将对象称为简单的键和值对。实际上,JavaScript对象还有一个附加属性:指向另一个对象的指针。我们将此指针称为对象的原型。如果您尝试在对象上查找某个键并且找不到它,JavaScript将在原型中查找它。它将遵循“原型链”,直到它看到一个null值。在那种情况下,它返回undefined。