問題タブ [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必要があり、好きではありません。コードを読みやすくできるかどうかを確認する別の方法を試しています。