問題タブ [class-visibility]
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.
java - リフレクション - パッケージのローカル クラス内にネストされた public static クラスのアクセシビリティ
私の例では、クラスを含む (パブリックとして宣言されていない) とそのネストされた静的クラス (パブリックとして宣言されている) の 2 つのパッケージがpackage1
ありA
ますB
。
package2
Main
class のインスタンスを反射的に作成しようとする単純な main メソッドを持つクラスが含まれていpackage1.A$B
ます。
驚くべきことに (少なくとも私にとっては)、このコードはリフレクションなしでは不可能なことを成功させています。古典import
的なステートメント (import package1.A.B;
または などimport package1.A.*;
) は、クラスが表示されていないと主張するエラーを発生A
させます。さらに、 のインスタンスを作成するために特別なアクセシビリティ権限を要求する必要はありませんB
。それは正常な動作ですか?
編集:次のように、別の方法で内部クラスへの参照を取得した場合にも機能します:
toggle - jQuery での可視性の切り替えがすぐに崩壊する
jQueryとJavaScriptの初心者です。次の問題があります: div 領域を開こうとするたびに、すぐに折りたたまれます。HTML は次のとおりです。
JavaScript:
jQueryのアップグレードに関係していると思います...
前もって感謝します
ユリウス
javascript - 継承 + プライバシーを設計する Javascript の方法
私は Douglas Crockford の本「JavaScript : The Good Parts」と他の多くのリソースを読みましたが、Javascript での継承とプライバシーの実装について少し混乱しています。
私は Java World から来ました。クロージャーを介してプライバシーをシミュレートしたり、プロトタイプを介して継承を行ったりできることを理解しましたが、JavaScript の方法でそれを行いたいと考えています。
プロトタイプ/寄生パターンでいくつかの継承を実行できることはわかっています。これはパフォーマンスには適していますが、一部のプライバシー メンバーを適切に使用する方法はありません (新しいオブジェクトがインスタンス化されるたびに何らかのクロージャ関数を作成する必要があります)。
オブジェクトから継承し、douglas Crockford によって提案されたような機能/寄生パターンを介してプライバシー メンバーを使用できることはわかっていますが、オブジェクトがインスタンス化されるたびに関数が再度作成されるため、明らかにパフォーマンス/メモリの問題があります。
最後に、プライバシーのカプセル化などの他の言語での優れたプラクティスが JavaScript で意味があるかどうか疑問に思っています。ここで、「私たちはプライバシーを気にしません。このプロパティに外部からアクセスしてはならないことを世界に伝えてください。それで十分です」と人々が言っている投稿を見たことがあります。
Javascript の優れたプラクティスは、パブリック インターフェイスを使用したプロトタイプ/寄生継承に縮小され、開発者が期待どおりにライブラリを使用することを期待する必要がありますか? それとも、継承とカプセル化の観点から考えるのは、javascript ではなく「java」の考え方でしょうか? これらの目標を達成するために、JavaScript でアヒルのプログラミングの力を使用するにはどうすればよいでしょうか。
c++ - 入れ子になったクラスの C++ Access プライベート メンバー
タイトルは少し誤解を招くかもしれません。次の問題があります。葉と内部ノードで構成されるツリーがあります。ユーザーは葉に任意の情報を保存できる必要があり、ツリーにはユーザー定義の値のセットを取得し、対応する葉に一定時間 (償却されない) でアクセスする必要があるいくつかのメソッドがあります。
次のアイデアを思いつきましたが、残念ながらネストされたクラスのプライベートメンバーにアクセスできないため、機能しません。ユーザーはツリーを作成し、リーフごとUserElement
に、対応するリーフの user_defined 値を含むインスタンスを作成します。doSomethingWithTheTree(list>) のようなメソッドが呼び出されてツリーが構築されると、ツリーは対応するリーフを作成し、プライベート フィールドに保存しますleaf
。ユーザーが user_defined 値に対応するいくつかのリーフを使用してメソッドを呼び出したいときはいつでも、対応するUserElement
s を指定してメソッドを呼び出すだけで、ツリーは対応するリーフを一定時間で取得できます。
css - css メディア クエリを使用してナビゲーションを表示すると、メニュー項目が表示されない
幅が 610 ピクセル未満の画面に表示したくない水平メニュー バーがあります。そのために、navタグを次のように設定しています:
今、私はメディアクエリを次のように書いています:
画面サイズが 610px を超えていることを確認すると、メニュー リスト項目がなく、空のメニュー バーしか表示されません。ちなみに、<ul>
タグには z-index:2 も使用しています。
c++ - 遅延バインディングを使用して非プライベート コンテキストからプライベート メソッドを呼び出す
以下のコード ( ) によって生成される出力には驚きましたg++ 4.4.7
。
出力は
バインディングが遅いため、コンパイラがここでエラーを発行できないことはわかっていますが、非プライベート コンテキストからプライベート メソッドを呼び出せるのはなぜでしょうか?
根拠は何ですか?