問題タブ [mixins]

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 投票する
0 に答える
563 参照

ruby-on-rails - mixin から with_scope にアクセスできない

奇妙な問題に出くわしましたが、何が原因なのかよくわかりません。

Rails アプリで mixin を作成しましょうMixin:

他の場所でモデルクラスにinclude編集されます:

を呼び出すModel.new.fooと、エラーが発生します。NoMethodError: undefined method with_scope

次に、fooメソッドを次のように変更しました。

しかし、これもエラーになります。NoMethodError: protected method with_scope called

これは奇妙に思えます。mixin メソッドは .NET の他のメソッドと同じように動作すると予想していましたModelsaveのようなすべてのインスタンスメソッドがそこにあり、通常どおり機能するため、これまでつまずいたことはありません。

私はそれをすべて間違っていますか?

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

ruby - mixin メソッド内でインスタンス変数にアクセスするにはどうすればよいですか?

mixin メソッド内でインスタンス変数にアクセスするにはどうすればよいですか? 2つの方法が考えられますが、どちらも問題があるようです。

  1. 任意のクラス メソッドと同じように、mixin メソッドがインスタンス変数に直接アクセスするようにします (例: self.text)。これに関する問題は、mixin メソッドを使用できる場所に制限を課し、ミキシングを行うクラスに特定の方法で名前を付けた特定のインスタンス メソッドを持たせることです。

  2. インスタンス変数をパラメーターとして mixin メソッドに渡すと、次のようなコードになります。

また

これは私には厄介に見え、オブジェクト指向の原則に準拠していません。

それを行う他の方法はありますか?、心配するのは正しいですか?

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

grails - GroovyMetaClass-適切なメタクラスにカテゴリメソッドを追加します

Grailsプラグインで使用するカテゴリがいくつかあります。例えば、

これらのメソッドをメタクラスに追加して、カテゴリクラスを使用する必要がなく、インスタンスメソッドとして呼び出すことができるようにするための最良の方法を探しています。例えば、

これを行うのに役立つGroovy/Grailsクラスまたはメソッドはありますか、それともメソッドを繰り返し処理してすべて自分で追加することに固執していますか?

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

maven - Maven 3 ミックスインの使用方法

Maven 3 でミックスインがどのように定義されているかを調べようとしましたが、話題以外のものは見つかりませんでした。ここここで大きな新機能の 1 つとして宣伝されています。私は現在、階層構造の痛みを感じており、それを試してみたいと思っています. ドキュメントまたは構文を定義するソースへのポインタを持っている人はいますか?

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

g++ - ミックスイン、可変個引数テンプレート、およびC++のCRTP

シナリオは次のとおりです。可変数のミックスインを持つことができるホストクラスが必要です(可変個引数テンプレートではそれほど難しくありません。たとえば、http: //citeseerx.ist.psu.edu/viewdoc/summary?doiを参照してください)。 = 10.1.1.103.144)。ただし、(CRTPイディオムを使用して)パブリックタイプを参照できるように、ミックスインをホストクラスによってパラメーター化することも必要です。この2つを混在させようとすると、問題が発生します。正しい構文は私にはわかりません。たとえば、次のコードはg++4.4.1でコンパイルできません。

エラーあり:

可変個引数テンプレートとCRTPの混合に成功した経験はありますか?

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

ruby - 「include module」ステートメントに遭遇したとき、ruby は何をインクルードしますか?

次のプロジェクト構造がある場合

lib.rb は次のようになります:-

そして a.rb と b.rb は両方とも lib.rb 内でいくつかのメソッドをミックスインする必要があり、両方ともモジュール内で次のように名前空間化されています:-

include ステートメントに遭遇したとき、ruby は何をしますか? クラスAとクラスBの両方を含むモジュール全体ではなく、lib.rbからのミックスインのみを含めたいことをどのように知っていますか?これは純粋にsubproject/libのrequireに基づいていますか、それとも間違っていますクラスAとBの定義を含めて、モジュール全体を含めますか?

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

ruby - モジュール内からクラスの包含名前空間にアクセスする

私は、とりわけ、いくつかの一般的な「ファインダー」タイプの機能を、それをミックスするクラスに追加するモジュールに取り組んでいます。問題: 利便性と美学の理由から、クラス自体と同じスコープで、クラスの外部にいくつかの機能を含めたいと考えています。

例えば:

これらのメソッドで機能を実行できますが、問題ありません。そして、ケース 1 ( User.name('Bob')) は簡単です。ただし、ケース 2 ~ 4 では、 の外部で新しいクラスとメソッドを作成できる必要がありますUser。このModule.includedメソッドは、クラスへのアクセスを提供しますが、それを含むスコープへのアクセスは提供しません。クラスやモジュールで確認できる単純な「親」タイプのメソッドはありません。(名前空間については、つまり、スーパークラスでもネストされたモジュールでもありません。)

これを行う最善の方法は、クラスの文字列を解析し#nameて名前空間を分割し、文字列を定数に戻すことです。しかし、それは不器用に思えます。これが Ruby であることを考えると、もっとエレガントな方法があるべきだと思います。

誰にもアイデアはありますか?それとも、自分の利益のために賢すぎるだけですか?

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

ruby - Objective-C は Ruby のように Mixin をサポートしていますか?

Rubyにはモジュールがあり、モジュールを「ミックスイン」することでクラスを拡張できます。

Objective-C では、多くのクラスに「継承」させたい共通メソッドのセットがあることがわかりました。共通クラスを作成し、その共通クラスからすべてを派生させることなく、これを達成する方法は他にあるでしょうか?

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

dynamic - インスタンスの Groovy Mixin (動的 Mixin)

私は以下を達成しようとしています:

1つの大きな違いがあります-インスタンスでミックスインを行いたいです:

しかし、これは

Groovy Mixins JSRで提案されているようにこれを機能させる方法はありますか?

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

groovy - Groovy Mixin を使用して静的メソッドを追加する方法

groovy の mixin 機能を使用して、メソッドをインスタンス メソッドではなく「クラス (静的) メソッド」としてインポートしたいと考えています。ミックスイン クラスに静的メソッドがあるにもかかわらず、ミックスインを使用すると、宛先クラスのインスタンス メソッドに変換されます。インポートされたメソッドをクラス (静的) メソッドにしたいのですが、良い方法はありますか?