gpt4 book ai didi

javascript - 在 ES6 中是否允许解构类实例属性?

转载 作者:行者123 更新时间:2023-12-04 02:29:54 24 4
gpt4 key购买 nike

假设我有以下代码:

class Foo {
constructor() {
this.a = 1;
this.b = 'something';
}

someMethod() {
// Is this legal?
let { a, b } = this;
}
}

someMethod 中的解构赋值吗?合法的?

我的直觉是它很好,但我在任何文档中都没有看到这种用法。它目前在 Babel 中工作,但大概是因为 Babel 正在将类转换为函数。我的理解是(几乎)JS 原型(prototype)中的所有内容都继承自 Object,因此我可能期望这对于 Classes 和 Class 实例也是如此。

我看到的关于幕后发生的事情的唯一引用 is here并指定JS引擎调用内部方法 ToObject只会在遇到 null 时抛出 TypeError或 undefined .但是 ToObject docs不要明确提及类实例。

最佳答案

明确允许解构对象并且是一项功能。this只指一个对象。它没有什么特别之处。
只要this指的是一个对象,这绝对没问题。 *

* this取决于您如何调用 someMethod 可能不会引用对象,例如Foo.someMethod.apply(null) .但无论如何,你真的有更大的问题。

关于javascript - 在 ES6 中是否允许解构类实例属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35552164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com