簡體   English   中英

返回JavaScript類值而不是對象引用(在ES6中)

[英]Return JavaScript class value instead of object reference (in ES6)

我正在尋找創建一個類,以便它將返回一個值而不是ES6中的類對象。

這幾乎是同樣的問題, 不過ES6。 有點觸及它,但你仍然必須明確地調用一個屬性。

我想做的事情如下:

class Foo {
  constructor(value) {
    this.value = value;  // returns an object other than *this*.
  }
}    

var foo = new Foo(4);
console.log(foo) // 4

但目前它返回{value: 4}

valueOf可以幫助你做任何你想做的事情:

class Foo {
  constructor(value) {        this.value = value; }
  valueOf()          { return this.value;         }
  ^^^^^^^^^
}    

var foo = new Foo(4);
console.log(+foo) // 4

您必須確保了解valueOf工作原理。 根據文件

JavaScript調用valueOf方法將對象轉換為原始值。

因此,簡單地引用該對象當然不會調用valueOf ; 這會讓你無法引用底層對象。 它用於需要將對象強制轉換為基元的情況 ,例如+foo

valueOf與ES6本身無關; 它適用於所有對象。

暫無
暫無

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

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