問題タブ [prototypal-inheritance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascript 継承のスコープに関する質問
「疑似古典的継承」スタイルを使用して、JS 継承に頭を悩ませようとしています。私は多くの Google 検索を行い、古典的な記事を読みました。私は Java のクラス構造に精通しており、JS のプロトタイプ スタイルを理解しようとしています。最初に基本を理解したいので、バニラJSを探しています。
単純な親子テスト クラスのセットアップがあり、スコープ ルールに関するヘルプが必要です。
1.) クラス内とクラス外でメソッドを定義するのはいつですか?
2.) プロトタイプ スタイルを使用してメソッドを作成する場合、プライベート変数とプライベート関数にアクセスするにはどうすればよいですか?
3.) 子オブジェクトはどのようにしてプライベート関数を呼び出したり、親のプライベート変数にアクセスしたりできますか?
4.) 子オブジェクトが親コンストラクターを手動で呼び出す必要があるのはいつですか?
}
コードの 80% が複製された 3 つのオブジェクトがあったため、親オブジェクトと 3 つの子オブジェクトを作成しました。子オブジェクトには、親からのプライベート データを使用および操作するメソッドがあります。これを機能させる唯一の方法は、好きではないすべての変数を公開することです。繰り返しますが、私は Java に精通しているので、JS を Java のように機能させるのは難しいかもしれません。
javascript-framework - バックボーン JS は jQuery にあまり似ていませんか?
Backbone JS では、jQuery の使用を強く推奨しています。ただし、それは非常に jQuery ではありません。たとえば、jQuery は new 演算子の必要性を取り除き、backbone はそれを多用します。
別の注意として、私は古典的な継承よりもプロトタイプの継承に基づいたフレームワークを探しています (新しい)。jQuery はこのカテゴリには当てはまりません。これは、私が傾倒しているアーキテクチャ スタイルにすぎません。
プロトタイプの継承を使用するフレームワークはありますか、それとも独自のブリッジ パターンをロールしますか?
javascript - javascriptでのプロトタイプの継承の質問
プロトタイプの継承とは何かを理解していますが、実装については混乱している必要があります。関数コンストラクターのプロトタイプを変更すると、そのコンストラクターのすべてのインスタンスに影響すると思いましたが、そうではありません。JSはオブジェクトからそのプロトタイプへのメソッドルックアップをどのように行いますか?
これが例です
のプロトタイプでメソッドをa
探すという印象を受けたので、インスタンス化の前後のプロトタイプへの変更は反映されますが、そうではないようです。誰かが私のためにこれを説明できますか?talk()
A
A
a
javascript - JavaScript関数の呼び出しは、プロトタイプまたは直接参照を介して高速ですか?
JavaScriptで、bObj内からaObj.myMethod()を呼び出したいとしましょう。私のアプリケーションの場合、設計の観点から、aObjはbObjの基本クラスです。JavaScriptは遅延バインディング言語です。つまり、myMethodは実行時に解決する必要があります。関数の解決は速いですか
////////// もしも
1-私は自然に自分のデザインを使用してbObj.prototype=aObjと言い、実行時にbObj.myMethodを呼び出します。
////////////////////////また
2-プロトタイプでは関数の解決が遅くなる可能性があるため、aObjをbObjのプロパティとして保持し、bObjの内部からaObj.myMethod()を呼び出します。
私の主な関心事は実行速度です。私のアプリケーションでは、myMethodは1秒間に何百万回も呼び出されています。ほとんどのブラウザーは最近呼び出された関数へのポインターをキャッシュするので、どちらの場合も関数解決プロセスが高速化されることを私は知っています。しかし、これら2つのケースでの関数解決メカニズムの詳細を誰かが提供し、どちらの方法がおそらくより高速であるかについての洞察を与えることができますか?解決メカニズムはすべてのブラウザで同じですか、それとも完全にブラウザに依存していますか?
javascript - プロトタイプ チェーンに何かを挿入するにはどうすればよいですか?
私は本質的に強化された「クラス」を持っていますArray
:
これはうまくいきます。うまくいかないのは、この「クラス」のプロトタイプを追加することです:
私が最初に考えたのは、「プロトタイプ」をresult
Array
:
これは機能しますが、各インスタンスがプロトタイプ プロパティの独自のコピーを持つことになります。のプロトタイプチェーンに NamedArray.prototypeを挿入する方法はありresult
Array
ますか?
javascript - サブクラスはどのようにしてスーパークラスのインスタンス変数を取得できますか?
以下のコードでは、2つのクラスがあります。1つはNodeで、もう1つはBtreeです。ノードでsplit()インスタンスが呼び出された場合は、新しいノードを作成し、それを親として保存して、Btreeのルートノードを変更します。
ノードはどのようにしてBtree.rootにアクセスできますか?クラス継承を使用する必要がありますか?(このコードは完全なコードではないので、エラーが発生する可能性があります...私はそれを理解したいだけですが)
javascript - Javascript 継承に関する質問
以下のコードのバージョン 2 がバージョン 1 と同じ結果を生成しないのはなぜですか?
javascript - これを真の原型継承と呼べるでしょうか?
ある種の古典的な継承を JavaScript に強制しようとする人々のやり方には、いつも驚かされます。オブジェクト b からオブジェクト a にプロトタイプ メソッドを追加せずに、あるオブジェクト b でオブジェクト a からプロトタイプ メソッドを継承するメソッドと、1から継承されたオブジェクトからプライベート変数を使用する可能性を設計しました。さて、私は興味があります: これは本当にプロトタイプの「継承」だと思いますか? それは実行可能な方法ですか?それに落とし穴はありますか?
コード例を次に示します。
この jsfiddleでわかるように、今instanceA
は methodgetConst1
がinstanceB
含まれており、メソッドgetConst1
とが含まれています。getConst2
1コンストラクター関数にプロトタイプ メソッドを割り当てることにより、それによって作成されたクロージャーを効果的に使用します。
javascript - 実際のプロジェクトでのプロトタイプの継承に基づくアプリケーション
クラスベースの継承は、大規模なプログラミング システム、特に GUI システムを作成する際にその有用性を示しています。
実際のアプリケーションでプロトタイプベースの継承をどのように適用できますか? クラス階層を作成する代わりに、どのようにシステムを構築する必要がありますか?
クラスベースのOOPに存在するような、実際のプロトタイプベースのOOPのプログラミングパターンはありますか?
javascript - DOM ツリーにない jquery オブジェクトからキャンバス ノードをコピーする
私はここしばらくゲーム エンジンに取り組んできましたが、最近、シャドウ DOM と呼ばれるものを追加しました。すべてがdivを含むjQueryオブジェクトなので、それに追加できます。フレームが経過するたびに、Shadow DOM のコンテンツが複数のビューポートにコピーされます。私の問題は、キャンバス要素の状態をコピーできないことです。
各ビューポートの各キャンバス要素を更新することなく、これを回避する方法はありますか?