如何 - 在Javascript中单独添加函数到类中

时间:2016-04-21 19:51:16

标签: javascript class ecmascript-6

我有一个看起来像这样的文件:

cars.js:

class Cars {

    Saab(){
        return 'Saab';
    }

    Volvo(){
        return 'Volvo';
    }

}

var cars = new Cars();

现在我想在文件中将它们分开以组织我的代码:

saab.js

class Cars {
    Saab(){
        return 'Saab';
    }
}

volvo.js

class Cars {
    Volvo(){
        return 'Volvo';
    }
}

cars.js

/**
 * Some magic
 */
var cars = new Cars(); // contains function Volvo() and Saab()

我该怎么做?

PS:
extendsclass Saab extends Cars)的问题是,我现在需要致电new Saab()new Volvo(),而这不是我想要的,我想致电{{ 1}}。

2 个答案:

答案 0 :(得分:1)

有点奇怪的方法,但唯一的解决方法是使用ES6之前的技术。即,扩展原型。

// volvo.js
Cars.prototype.Volvo = function() {
  return 'Volvo';
};

// saab.js
Cars.prototype.Saab = function() {
  return 'Saab';
};

从技术上讲,这是带有类语法的“幕后”。如果你没有在类声明中设置所有方法,那么这就是必须要做的。

答案 1 :(得分:1)

common.js

function Cars(){
    this.name='car'; 
    return this;
}
Cars.fn=Cars.prototype ;

Volvo.js

Cars.fn.volvo=function(){
     this.name='Volvo';
     return this.name;
}

Saab.js

Cars.fn.saab=function(){
     this.name='Saab';
     return this.name;
}

impl.js

 var c1=new Cars();
 c1.volvo();
 //......

在HTML页面中,按以下顺序导入JS:

 <script src="common.js"></script>
 <script src="Volvo.js"></script>
 <script src="Saab.js"></script>
 <script src="impl.js"></script> <!-- where  use API -->