【问题标题】:Naming classes that are properties of main class [closed]作为主类属性的命名类[关闭]
【发布时间】:2017-04-15 06:57:18
【问题描述】:

我想知道如何命名将由我的主构造函数使用但没有继承的构造函数。解释:

我有一个构造函数 Human:

function Human() {}

而人类具有手臂、腿等属性:

function Human() {
  this.arms = new Arms();
  this.legs = new Legs();
}

我想知道如何根据手臂和腿的常见用法和惯例来命名。如果我应该使用:

function Human() {
  this.arms = new HumanArms();
  this.legs = new HumanLegs();
}

或:

function Human() {
  this.arms = new Human.Arms();
  this.legs = new Human.Legs();
}

【问题讨论】:

  • 这完全取决于您,只要您的代码库保持一致,其中任何一个(或只是ArmsLegs)都是正常的。
  • 旁注:所有最新版本的 Node 都有一个支持新的、更简洁的 class 语法的 V8 版本。
  • 人类以外的东西有胳膊和腿吗?

标签: javascript node.js oop


【解决方案1】:

只是一个建议,你应该考虑使用 es6 class 关键字,加上 static 关键字

class Arms {
    constructor() {}
}

class Legs {
    constructor() {}
}

class Human {
    constructor() {
        this.arms = Human.Arms();
        this.legs = Human.Legs();
    }    
    static Arms() {
        return new Arms();
    }
    static Legs() {
        return new Legs();
    }
}

但这一切都取决于个人选择

【讨论】:

  • 这是问题的答案吗?引入额外的一层静态方法的目的是什么?
  • @torazaburo 基于您之前的回答“做人类以外的事情有胳膊和腿”。
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 2013-08-21
相关资源
最近更新 更多