2015-01-14 9 views
5

私はjavaScriptで比較的新しいです。私はいくつかの継承をしていました。私はプロトタイプが何であるか知っていたと思ったが、その後私はウーバーメソッドで会った。今私はそれらの2つの違いを知らない。 私はuberがJavaのスーパーのようなものだと知っています。しかし、プロトタイプは私を悩ますものです。 私はそれらの2つを使用していくつかの簡単な例を与えることができる場合は非常に感謝します。uberとプロトタイプのJavascriptの相違

+2

あなたが知っている限り、オブジェクトにこのメソッドを追加するライブラリを使用していない限り、JavaScriptには 'uber'メソッドはありません。万が一、図書館を利用していますか? –

+0

私は1つを使用しています。そこに定義されているかもしれません。しかし、まだ私は、私がユーバーが何であるか知っている違いを知らない。親のオブジェクトへの単なるポインタです – anicicn

+1

Douglas Crockfordが継承チュートリアルで使用する 'uber'メソッドについての答えを、あなたがこれを意味していると仮定して追加しました。それは最も一般的な例のようです。あなたはどこで「ユーバー」を見つけたのですか? –

答えて

11

uberは、JavaScriptの原型継承の非常に、非常に柔軟な性質を扱うときdevoloperを助けるべきであるダグラス・クロックフォードは、JavaScriptでの継承の彼の例で作成したばかり砂糖方法です。

このメソッドはネイティブJavaScriptでは存在しません。

彼は砂糖の方法について詳しく説明しています。here。彼の例では


彼は、メソッドの親の実装にアクセスするためのヘルパーメソッドとしてuber方法を定義します。

「クラス」があるとしましょう(この例ではこの例を簡単にするためにこの用語を使用しますが、JavaScriptにはクラスがありません)Humanにはwalkメソッドがあります。 Infantクラスでこのクラスを「拡張」すると、歩くことができないため、幼児のみがクロールするようにwalkを上書きすることができます。

これは明らかに素晴らしい例ではありませんが、私はあなたがポイントを得ることを願っています。あなたはInfant「クラス」にwalkHuman実装にアクセスするためにダグラス・クロックフォードにuberメソッドを使用することができ、このような場合には

。両者がcompletly異なる目的を果たすため、JavaScriptのネイティブprototype対象とダグラス・クロックフォードuber方法を比較するために、


は、意味をなさないだろう。

JavaScriptについて詳しくはprototypeをご覧ください。this questionをご覧ください。

関連する問題