我回到“原始”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() {};
......但这可能太不寻常了。
答案 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让你不那么冗长。方式不那么冗长。很多时候你不需要括号或括号,你根本不需要原型。