3

私は「生の」Javascriptに戻ってきて、次のようなクラスを書いています:

var Person;

Person = (function() {

    function Person() {}

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

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

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

    return Person;

})();

Person.prototypeの繰り返しはあまり DRYではないように感じます。行の折り返しを避けるのも難しいです。これに対処する一般的な方法はありますか?たとえば、Person.prototypeのような小さな変数に割り当てることができますcls。これにより、線がより似たものになります。

cls.run = function() {};

...しかし、それは型にはまらないかもしれません。

4

2 に答える 2

4

プロトタイプには何もないので、単純に新しいオブジェクトを割り当てることができます:

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

それ以外の場合は、jQuery などの関数を使用して$.extend()2 つのオブジェクトをマージできます。

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

それは DRY の本当の意味ではありません。ぶっちゃけ、「if」と「function」もたくさん書かなければなりません。そして、私は本当に'return'と'for'を我慢できません。;)

DRY は、機能をコピーして貼り付ける場合に使用され、コードが肥大化し、メンテナンス コストが高くなります。この場合、言語の構文についてもっと不満を言っています。

ところで、オブジェクトのメソッドを定義することで、あなたはおそらく多くの人より先んじています (つまり、より DRY)。

とはいえ、coffeescript を使用すると、冗長性を減らすことができます。あまり冗長ではありません。多くの場合、括弧や中括弧は不要で、プロトタイプもまったく必要ありません。

于 2012-06-13T17:38:03.040 に答える