[英]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
,它只會在遇到null
或undefined
時拋出TypeError。 但是ToObject
文檔沒有明確提到類實例。
明確允許解構對象,這是一個功能。
this
只是指一個物體。 沒什么特別的。
只要this
指的是一個物體,這絕對沒問題。 *
* this
可能不會引用一個對象,具體取決於你如何調用someMethod
,例如Foo.someMethod.apply(null)
。 但無論如何你真的有更大的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.