3

我要回到“原始”Javascript,我正在编写这样的类:

var Person;

Person = (function() {

    function Person() {}

    Person.prototype.run = function() {};

    Person.prototype.jump = function() {};

    Person.prototype.talk = function() {};

    return Person;

})();

我觉得重复Person.prototype不是很干:避免换行也更难。有解决这个问题的常用方法吗?例如,可以分配Person.prototype给一个小变量 like cls,这会使线条看起来更像

cls.run = function() {};

...但这可能太不合常规了。

4

2 回答 2

4

由于原型中没有任何内容,您可以简单地为其分配一个新对象:

Person.prototype = {
    run: function() {},
    jump: function() {},
    walk: function() {}
};

否则,您可以使用诸如 jQuery 之类的函数$.extend()来合并两个对象:

$.extend(Person.prototype, {
    run: function() {},
    jump: function() {},
    walk: function() {}
});
于 2012-06-13T17:39:22.597 回答
2

这不是 DRY 的真正含义。该死,我也必须写很多'if'和'function'。我真的不能忍受'return'和'for'。;)

DRY 用于复制和粘贴功能,导致代码臃肿和维护成本高。在这种情况下,您更多地抱怨语言语法。

顺便说一句,通过在对象上定义方法,您可能领先于(即更干)许多人。

说了这么多,coffeescript 可以让你不那么冗长。方式不那么冗长。很多时候你不需要括号或大括号,你根本不需要原型。

于 2012-06-13T17:38:03.040 回答