首页 > 解决方案 > 我正在应用什么技术来减少代码?

问题描述

当我在一个对象中调用一个对象来扩展对象时,我应用了什么样的编程技术?

在我的工作中,我们有一个规则,即任何 JS 文件都不能超过 50 行。因此,当我们有一个非常大的对象时,我们将新子对象上的代码分开,但作为单个对象工作:

function ObjetoA(parent){
   parent.showMessage() = function () {
      console.log('HOLA MUNDO');
   }
}

function Objeto(){

   new ObjectoA(this); //this one

   this.sayHiAgain() = function () {
      console.log('HOLA MUNDO OTRA VEZ');
   } 
}

let Prueba = new Objecto();
Prueba.showMessage();// it works

标签: javascriptoop

解决方案


让我们看看发生了什么:

  • 当您调用Objeto()时,代码new ObjetoAA(this)将运行。
  • 现在,ObjetoAA(parent)运行,它将属性设置showMessageparent. 该属性是一个函数。所以现在Objecto有一个函数属性showMessage

我认为在您实现它的方式中这种模式没有任何特定的名称。它只是......使用对象。我会说这是一种扩展/修改/拆分/组合类的创造性方法。这有点模拟mixin

但这不应该是必要的:看看你为了满足任意行数限制而必须经历的体操。它提高了你的生产力吗?它是否提高了代码的可读性和可维护性?没有。

一些限制可能是有道理的:没有人想在单个文件中扫描 30,000 行 JavaScript(至少,不是未缩小的版本);但 50 是一个非常非常小的限制。如果可以的话,我建议你推迟这项政策。


推荐阅读