問題タブ [instance-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 投票する
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 がインスタンス メソッドではなくクラス メソッドを定義するのはなぜですか?

0 投票する
1 に答える
418 参照

iphone - ココアタッチ。これらの NSMutableData メソッドの違いは何ですか?

私が少しはっきりしていないことの 1 つは、これらの NSMutableArray メソッドの違いです。

内部では、クラス メソッドは実際に何をしているのでしょうか。インスタンスメソッドとの違いは?

乾杯、ダグ

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

python - インスタンスメソッドに関するPythonの制限を克服する

Pythonにはインスタンスメソッドに関していくつかの制限があるようです。

  1. インスタンスメソッドはコピーできません。
  2. インスタンスメソッドを選択することはできません。

私はインスタンスメソッドを参照する非常にオブジェクト指向のプロジェクトに取り組んでおり、ディープコピーとピクルスの両方を使用しているため、これは私にとって問題です。酸洗いは主にマルチプロセッシングメカニズムによって行われます。

これを解決するための良い方法は何でしょうか?コピーの問題に対していくつかの醜い回避策を実行しましたが、両方の問題に対するより良い解決策を探しています。

誰か提案はありますか?

アップデート:

私のユースケース:私は小さなイベントシステムを持っています。各イベントには、.actionトリガーすることになっている関数を指す属性があり、その関数がオブジェクトのインスタンスメソッドである場合もあります。

0 投票する
8 に答える
6953 参照

ruby - インスタンス メソッドをクラス メソッドに委譲する

Ruby で、FooFoo の大規模なコレクションをカタログ化できるクラスがあるとします。すべての Foo が緑色で球状であるというのは基本的な自然の法則であるため、次のようにクラス メソッドを定義しました。

これは私がすることができます

だがしかし

my_fooそれは明白に緑色であるという事実にもかかわらず。

明らかに、 をcolour呼び出すインスタンス メソッドを定義できますself.class.colourが、そのような基本的な特性が多数あると扱いにくくなります。

欠落しているメソッドのクラスを試すように定義することでおそらくそれを行うこともできますがmethod_missing、これが私がやるべきことなのか醜いハックなのか、それとも安全に行う方法なのかはわかりません (特に私は実際に ActiveRecord の下にいるため) Rails では、method_missing を使っていくつかの Clever Fun Stuff を実行していることを理解しています)。

あなたは何をお勧めします?

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

python - instancemethod デコレーターはどこにありますか?

私のコードには、次のようにクラスのインスタンスを返すメソッドがあります。

物事を整理するために、Props を MyClass 内に配置することを検討しています。次に、次のように、fun をバイパスして、クラスを MyClass のインスタンス メソッドに直接作成します。

コメントに注意してください - instancemethod デコレータは存在しません。

これを行う方法、つまり、呼び出し可能なオブジェクトをインスタンス メソッドに変換する方法はありますか? @instancemethod を @classmethod に変更すると、構築は機能しますが、もちろん親はインスタンスではなくクラスです。反対の操作と思われるものについて何も見つけられないことに驚いています。

これがクリアされたことに興味があります!

編集:

私の質問が明確ではなかったようです。私が持っているのは、単一の値やタプルではなく、データでいっぱいのオブジェクトを返すメンバー関数 fun です。このデータは、MyClass オブジェクトと関数の引数の内容に基づいて生成されます。私の最初のコードは、私が望むことを正確に行います。2番目のコードは、私が好む書き方です。

さらに、私が探しているデコレータは単に次のものであることに気付きました:

もちろん、これは私が回避しようとした「楽しい」方法と同じです。また、一見したところそのように見えるかもしれませんが、些細な「return cls」は同一ではないことに注意してください。

このデコレーターを使用すると、2 番目のクラス定義が有効になり、目的の結果が生成されます。つまり、a.fun() は、a のデータに基づいて (潜在的に) 初期化されるオブジェクトを返します。

classmethod と staticmethod の次に省略されているように見えるため、ここで定義された instancemethod が python 組み込みとして利用できない場合、これはまだ疑問を残しています。でも、そうでなくても、この構造で生きていけると思います。

0 投票する
1 に答える
39 参照

ruby-on-rails-3 - モデルでインスタンス メソッドではなく、クラス メソッドを定義するにはどうすればよいですか?

Activity.pull_latestコントローラーから呼び出せるようにしたいのですが、そうすると

私はそれを呼び出さなければなりませんActivity.new.pull_latest

モデルでインスタンス メソッドではなく、クラス メソッドを定義するにはどうすればよいですか?

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

python - Python でインスタンスメソッドに属性を追加する

クラス デコレータとメソッド デコレータをうまく連携させようとしたときに、この動作に遭遇しました。基本的に、メソッド デコレーターはいくつかのメソッドに特別なダミー値を付けてフラグを立て、クラス デコレーターは後で来て、後で値を入力します。これは簡単な例です

明らかに10が得られますが、なぜcow.moo.thing = 5機能しないのか誰かが知っていますか? cow.moo.thingそして、なぜcow.moo.__func__.thing = 5機能するのですか?理由はわかりませんが、dir(cow.moo)何かを機能させようとしてリスト内のものをランダムにいじっていると、突然機能し、理由がわかりません。

0 投票する
4 に答える
2231 参照

objective-c - Objective-C クラス メソッドはデリゲート メソッドを呼び出しませんが、インスタンス メソッドは呼び出します

次の2つの方法があります。

次のように、authenticateUserToGoogle メソッドをインスタンス メソッドとして呼び出す場合:

次の出力が得られます。

ただし、メソッド シグネチャで「-」を「+」に変更するだけで、authenticateUserToGoogle メソッドをクラス メソッドに変更し、次のように呼び出すとします。

次の出力が得られます。

つまり、クラス メソッドでは、デリゲート メソッド接続 didReceiveResponse が呼び出されることはありません!!

誰かが私にこの動作を説明できますか? ありがとう!

0 投票する
4 に答える
642 参照

objective-c - Objective C インスタンス メソッド ヘルプ *初心者*

CからObjective-Cへの変換を理解するのに苦労しています:

次のような特定のインスタンス メソッドがあるとします。

私はいくつかのことを理解しています...

  1. プログラムから呼び出せるインスタンスメソッドです。
  2. C では、これは何も返しません (カーリー内のコードを実行するだけです)。
  3. C では、構文がやや混乱しにくくなっています -(void)InstanceMethod(Char *nameOfArgument)

助けが必要な場所は次のとおりです。

  1. このメソッドを呼び出すとき、まだ引数を送信していますか?
  2. もしそうなら、その引数NSStringはメソッドが名前を付けるインスタンスnですか?

そして最後に...話題から外れた

方法があれば...

  1. (id) は何のためのものですか? それはコンパイラに、任意のタイプのオブジェクトを返すことができることを伝えますか?

初心者を助けてくれてありがとう...どうもありがとう。