我有一个看起来像这样的文件:
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:
extends
(class Saab extends Cars
)的问题是,我现在需要致电new Saab()
或new Volvo()
,而这不是我想要的,我想致电{{ 1}}。
答案 0 :(得分:1)
有点奇怪的方法,但唯一的解决方法是使用ES6之前的技术。即,扩展原型。
// volvo.js
Cars.prototype.Volvo = function() {
return 'Volvo';
};
// saab.js
Cars.prototype.Saab = function() {
return 'Saab';
};
从技术上讲,这是带有类语法的“幕后”。如果你没有在类声明中设置所有方法,那么这就是必须要做的。
答案 1 :(得分:1)
function Cars(){
this.name='car';
return this;
}
Cars.fn=Cars.prototype ;
Cars.fn.volvo=function(){
this.name='Volvo';
return this.name;
}
Cars.fn.saab=function(){
this.name='Saab';
return this.name;
}
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 -->