如何干掉原型javascript方法定义?

时间:2012-06-13 17:32:24

标签: javascript

我回到“原始”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分配给像cls这样的小变量,这会使行看起来更像

cls.run = function() {};

......但这可能太不寻常了。

2 个答案:

答案 0 :(得分:4)

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

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

否则你可以使用jQuery' s $.extend()之类的函数来合并两个对象:

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

答案 1 :(得分:2)

这不是DRY的真正含义。当然,我必须写“if”和“function”。我真的不能忍受'回归'和'为'。 ;)

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

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

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