1

随着类变得越来越大,它变得越来越难以维护。所以我很想把我的一些课程分成多个文件。在文件中定义类,例如:

var animal = can.Construct({
  someClassMethod: function() {...}
}, {
  somePrototypemethod: function() {...}
});

然后稍后在一个单独的文件中,我想重新打开这个类,并向它添加新的类方法/属性和原型方法/属性。

这在canJS中可能吗?如果不是,应该有什么可能的解决方法?

4

1 回答 1

2

您始终可以向原型和构造函数添加属性和方法。这就是 JavaScript 的工作原理。所以只要你仍然可以访问animal你就可以做到

animal.anotherClassMethod = function() {}
animal.prototype.anotherPrototypeMethod = function()

在另一个文件中。然而,让类定义变得太大通常是他们做得太多的问题。如果它们太大而无法在一个文件中维护(这意味着 2000 多行代码),除了将它们拆分之外,肯定还有一种更好的重构方法。将其拆分为单独的文件的一个缺点肯定是可能很难知道什么功能在哪里。

于 2013-03-09T15:58:06.437 回答