代码之家  ›  专栏  ›  技术社区  ›  Kevin Giraldo

如何更改字符串或数字在JavaScript中转换类的方式?

  •  0
  • Kevin Giraldo  · 技术社区  · 2 年前

    如何更改字符串或数字强制转换类的方式?

    例如,我有一个类User:

    class User {
      constructor(name, age) {
        this._name = name;
        this._age = age;
      }
    }
    

    如何将类对象转换为字符串,并在将其转换为字符串时返回name属性。如果我想将类的对象转换为Number,它会返回age属性。

    这样地:

    const user = new User('Kevin', 23);
    
    console.log(String(user)) // Kevin
    console.log(Number(user)) // 23
    

    谢谢

    2 回复  |  直到 2 年前
        1
  •  2
  •   CertainPerformance    2 年前

    使用 toString valueOf 方法。

    class User {
      constructor(name, age) {
        this._name = name;
        this._age = age;
      }
      toString() { return this._name; }
      valueOf() { return this._age; }
    }
    const user = new User('Kevin', 23);
    
    console.log(String(user)) // Kevin
    console.log(Number(user)) // 23
        2
  •  0
  •   Sincenir    2 年前

    我想知道为什么? 看起来这并没有降低复杂性。

    String(user);
    Number(user);
    
    user.string;
    user.number;
    
    user.name;
    user.age;