問題タブ [extend]

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 に答える
95913 参照

ruby - Rubyのインクルードとエクステンドの違いは何ですか?

Ruby のメタプログラミングについて頭を悩ませているところです。ミックスイン/モジュールは常に私を混乱させます。

  • include : 指定されたモジュール メソッドをターゲット クラスのインスタンス メソッドとして混合します。
  • extend : 指定されたモジュール メソッドをターゲット クラスのクラスメソッドとして混合します。

大きな違いはこれだけなのか、それとももっと大きなドラゴンが潜んでいるのか? 例えば

0 投票する
20 に答える
3159786 参照

python - Pythonのリストメソッドappendとextendの違いは何ですか?

append()list メソッドとの違いは何extend()ですか?

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

c++ - c++ で Lisp を拡張できますか?

c または c++ で書かれたライブラリから Lisp から関数を呼び出すことはできますか? Lisp を拡張するにはどうすればよいですか? これは、システム コールなどを実行する場合に便利です。

0 投票する
5 に答える
8823 参照

python - 別々の python パッケージを同じ名前空間に入れますか?

「アドオン」を個別のパッケージとして作成する Python フレームワークを開発しています。すなわち:

今、私が調整しようとしているのは、これらのアドオンをコア フレームワークとは別に配布し、myframework.addons名前空間に挿入できるようにすることです。

現在、これに対する私の最善の解決策は次のとおりです。アドオンがデプロイされます (ほとんどの{python_version}/site-packages/場合、次のようになります:

にはfooext/myframework/addons/__init__.py、pkgutil パス拡張コードがあります。

問題は、これが機能するために PYTHONPATH が含まれている必要があることfooext/ですが、それが持つ唯一のものは親インストールディレクトリ (ほとんどの場合、上記のsite-packages) です。

myframework/addons/__init__.pyこれに対する解決策は、myframework サブパッケージを含むモジュールをトラバースして検索する追加のコードを用意することです。sys.pathこの場合、それを追加するsys.pathとすべてが機能します。

私が持っていた別のアイデアは、アドオンファイルをインストール場所に直接書き込むことですmyframework/addons/が、そうすると、開発と展開された名前空間が異なってしまいます。

これを達成するためのより良い方法、または上記の配布の問題に対する別のアプローチはありますか?

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

javascript - IE7のElement.prototype?

私はすべてのdom要素を拡張して、子を取得および削除できるようにしようとしています。機能は以下の通りです(FFとChromeで動作します)。基本のdomオブジェクトを拡張するためのIE7に相当するものはありますか?

ありがとう!

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

javascript - マップ オブジェクトの拡張

プロトタイプを使用してマップ オブジェクトを拡張する方法がわかりません。お役に立てば幸いです。私はこのようなものを持っています:

キーの存在を確認する方法が必要です。

マップ オブジェクトを拡張するにはどうすればよいですか?

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

ruby - ruby オブジェクトの拡張; extends_object コールバックは、インスタンス メソッドが拡張されるのを防ぎます

モジュールを使用してオブジェクト インスタンスを拡張する際に、特に Module クラスで extends_object コールバックを定義するときに問題が発生しました。私の理解では、次のようなことをすると次のようになります。

(s = String.new).extend SomeModule

SomeModule extends_object コールバックが呼び出されます。これは事実のようですが、コールバックを含めると、SomeModule で定義されたインスタンス メソッドはどれもオブジェクトに表示されません。いくつかのコードはこれをよりよく説明するはずです:

それで、

すなわち、

何か案は?

参照:

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

ruby - 1 つのブロック呼び出しのみを拡張する

いくつかのプライベート属性を含むクラスがあります。私がやりたいことは、特定のブロックの実行のためだけに、これらのいくつかのセッターを動的に追加することです。

私ができるようにしたいことの例:

編集:これまで素晴らしい回答をありがとう。モジュールで定義されたセッターと競合する可能性があるクラス自体で属性リーダーを実際に定義する必要があるため、質問を明確にしました。質問を投稿するときにこの部分を忘れていました。(遅かった^^)

明確化: このクラスは、DSL が構成ファイルを書き込むためのものです。非開発者を対象としているため、オペレーターが少ないほど良いです。

私は現在、ブロックするプロキシクラスを使用してこれを実装してinstance_evalいますが、値を設定するためにいじるinstance_variable_set必要があり、好きではありません。コードを読みやすくできるかどうかを確認する別の方法を試しています。

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

jquery - 複雑なjquery cssセレクターをキャッシュ用のコンテキストに変える

フィードバックの後、質問を完全に書き直します。

次のマークアップがあります。

アクセスできます:

使用:

これにより、「do-not-modify-me」という ID を持つ div を除く本文のすべてのコンテンツを取得できます。

ここで、jquery を使用した選択と同じように、別のプログラマーが本体内の任意のものを選択できるようにする関数を作成したいとしましょう。他のプログラマーは div#do-not-modify-me を変更すべきではありませんが、気にする必要もありません。

$('body > *:not(div#do-not-modify-me)')頻繁に呼び出されるので、キャッシュします。

アイデアは次のとおりです。

したがって、他のプログラマーは次のことができるはずです。

本体のすべてが赤くなります<p>が、div#do-not-modify-me に含まれるものは赤くなりません。

TEST CODE は機能しません。現在のところ、それ自体の結果ではなく、コンテキストの結果の子に css() を適用するためです。

例:

次のように動作します。

望ましい結果は次のようになります。

ご了承ください :

<p>div#do-not-modify-me が赤くなるため機能しません。

TEST RESULT CODE の結果をどのように取得しますか? コードの任意の部分を変更できます。

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

jquery - jQuery プラグインを複数のファイルに分割する方法

私は小さな CMS を jQuery AJAX プラグインとして作成していますが、決して長すぎるわけではありませんが (現在は約 500 行)、「サブクラス」ごとに 1 つずつ、個別のファイルに分割できると便利です。

上記の例では、classOne のコードを 1 つのファイルに、classTwo を別のファイルに、myCMS の「baseclass」を 3 番目のファイルに配置したいと思います。(「サブクラス」ファイルのそれぞれで)このようなものでこれを達成することは可能ですか?

どうもありがとう、

JS