問題タブ [class-method]

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.

0 投票する
7 に答える
16997 参照

ruby - Rubyのインスタンスからプライベートクラスメソッドを呼び出す方法はありますか?

以外self.class.send :method, args...はもちろん。コードを複製せずに、クラス レベルとインスタンス レベルの両方でかなり複雑なメソッドを使用できるようにしたいと考えています。


アップデート:

@ジョナサン・ブラナム:それは私の仮定でしたが、他の誰も方法を見つけていないことを確認したかった. Ruby での可視性は、Java での可視性とは大きく異なります。privateこれはプライベートクラスメソッドを宣言しますが、クラスメソッドでは機能しないこともまったく正しいです。

0 投票する
18 に答える
147191 参照

python - クラスメソッドの目的は何ですか?

私は独学で Python を学んでおり、最近の教訓はPython は Javaではないということでした。そのため、しばらく時間をかけてすべての Class メソッドを関数に変換しました。

Java でメソッドを使用する場合に Class メソッドを使用する必要がないことに気付きましたがstatic、いつ使用するかはわかりません。Python クラス メソッドについて私が見つけることができるすべてのアドバイスは、私のような初心者の方針に沿ったものであり、標準ドキュメントはそれらについて議論するときに最も不透明です。

誰かが Python で Class メソッドを使用する良い例を持っていますか、または少なくとも誰かが Class メソッドをいつ賢明に使用できるかを教えてくれますか?

0 投票する
2 に答える
6015 参照

objective-c - Objective-C クラス メソッドのオブジェクト保持動作

クラス メソッドに渡されたオブジェクトを保持および解放するためのベスト プラクティスは何ですか?

たとえば、次のように宣言された「クラス変数」があるとします。

...これを行うのは正しいことです:

...これには、呼び出し元が、途中で解放されないように、param でゼロ以外の保持カウントを維持する必要があるという欠点があります。あるいは、これを行うこともできます:

dealloc...これには、対応するクラスレベルの呼び出しがないとメモリリークが発生するという欠点があります。それとも、この種のオブジェクトの有効期間をより従来の方法で管理するシングルトン クラスを使用して、この種のクラス変数ごまかしを完全に回避する必要がありますか?

シングルトン インスタンスの作成に関する Apple のドキュメントは次のとおりです。

私が取り組んでいるコードは、非常に洗練された (しかしまだ新しい) Objective Resource プロジェクト ( http://www.iphoneonrails.com/ ) です。

0 投票する
6 に答える
24541 参照

python - クラスメソッドをインスタンスからメソッドとして呼び出すのは悪い形式ですか?

元。

私がこのようなものを持っている場合:

これはうまくいきます:

しかし、それは悪い形ですか?電話するだけでいいのか

また

明らかに、これは f がクラスであることを期待して self/cls と対話しない場合にのみ意味があります。

?

0 投票する
6 に答える
50828 参照

ruby - define_method を使用してクラス メソッドを作成するにはどうすればよいですか?

これは、クラス メソッドをメタプログラム的に作成しようとしている場合に役立ちます。

従うべき私の答え...

0 投票する
3 に答える
1668 参照

ruby - Ruby には、次の構文の関連アプリケーションがあります: class << self ... end

上記の構文は、クラス インスタンス変数の定義に使用されます。しかし、構文が何を意味するかを考えると、意味が分からないので、このタイプの構文が他のタイプの定義に使用されているかどうか疑問に思っています。ここでの私の混乱のポイントはこれです:

通常、append 演算子は「右側にあるものを左側にあるオブジェクトに追加する」ことを意味します。しかし、このブロックのコンテキストでは、「このブロックの内容をインスタンスではなくクラス インスタンスの定義に入れる」ことはどのように行われるのでしょうか?

同じ理由で、あるコンテキストクラスで << self がクラスインスタンス変数を定義できるのに、別のコンテキストクラスでは次のようなクラス変数を作成するように見える理由について混乱しています。

0 投票する
2 に答える
1762 参照

ruby - クラスで呼び出されたときに instance_eval() がクラスメソッドを定義するのはなぜですか?

私の理解では、オブジェクトでinstance_evalを呼び出すと、そのオブジェクトのインスタンス変数またはメソッドを定義できるようになるはずです。

しかし、上記の例では、クラス Foo で呼び出して instance_bar メソッドを定義すると、 instance_barは「Foo.instance_bar」で呼び出すことができるクラス メソッドになります。Foo.new.instance_bar の結果が「undefined method 'instance_bar'」になるため、このコードがインスタンス メソッドを作成していないことは明らかです。

このコンテキストで instance_eval がインスタンス メソッドではなくクラス メソッドを定義するのはなぜですか?