私はまだ勉強していますが、最近私はWeb開発に取り組みたい分野を変更しました。だからプログラミングは私には新しいものではありませんが、私は実際にJavaScriptを二度見たことはありません。OLOOパターンの明確化
私は早く習得しようとしていますが、私はjavascriptで使用されているさまざまな継承パターンについて混乱しています。 .prototypeリファレンスがプログラマによって設定されている古典的なプロトタイプチェーンを調べました(これは一般的にプロトタイプパターンと呼ばれています)。 その後、OLOOについてのブログや記事、シンプルさに関する利点をたくさん読んでいました。
私は小さなサンプルを自分でコーディングしようとしましたが、良いアプローチを研究しているうちに、私はこれらの2つのカテゴリのいずれにも入れられないコードを作りました。
私は1つを見ていたい場合はフィドルを作った:うまくいけば、誰かがそれは私がここでやったが何であるかを明確にすることができます
function Parent() {
return {
array: [],
add: function(element) {
this.array.push(element + this.array.length.toString());
},
getAll: function() {
return this.array;
},
};
};
function Child() {
return Object.assign(Parent(), {
removeAllButOne: function() {
this.array.splice(1);
}
});
};
foo = Parent();
foo.add('foo');
bar = Child();
bar.add('bar');
foo.add('foo');
bar.add('bar');
bar.removeAllButOne();
と:誰のために http://jsfiddle.net/HB7LU/19377/
を、これは基本的に私のコードですこの方法を使用して直面する短所OLOOは新しいオブジェクトを作成するために単純なObject.create(...);
に依存しているため、OLOOにすることはできません。
EDIT:リンクはフィドルするが壊れていた、何をやって申し訳ありません
あなたは角の例に行きます。それはインテントですか?そして、そこに欠けていることは、ng-app宣言です) – kwoxer
リンクは実際にAngularJSの例に行きます。私はこれが人々を混乱させないことを願っています。リンクは意図したとおりに動作するはずです.HTMLドキュメント全体を見ることができないので、必要なアプリケーションはありません。少なくとも私が作ったのはそのような仕組みだった。 – swent
それは2015年外です:あなたはES2015からjavascriptクラスを使用することができます – zerkms