簡體   English   中英

在ES6中是否允許解構Class Instance屬性?

[英]In ES6 is destructuring Class Instance properties permitted?

假設我有以下代碼:

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

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

someMethod的解構賦值是否合法?

我的直覺是它很好,但我在任何文檔中都沒有看到過這種用法。 它目前在巴貝爾工作,但可能是因為在引擎蓋下巴貝爾正在將課程轉化為一個功能。 我的理解是(幾乎)JS中的所有內容都是原型繼承自Object,所以我可能期望這對Classes和Class實例也是如此。

我所看到的唯一引用是在引擎蓋下發生的事情,並指定JS引擎調用內部方法ToObject ,它只會在遇到nullundefined時拋出TypeError。 但是ToObject文檔沒有明確提到類實例。

明確允許解構對象,這是一個功能。
this只是指一個物體。 沒什么特別的。
只要this指的是一個物體,這絕對沒問題。 *

* this可能不會引用一個對象,具體取決於你如何調用someMethod ,例如Foo.someMethod.apply(null) 但無論如何你真的有更大的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM