d3.jsスクリプトで、レイアウトの1つに関するいくつかの関数を書き直したい。これらの関数を別々のファイルにカットアンドペーストしてd3.jsの後に読み込むと、内部関数がd3.jsの内部関数を呼び出すため、視覚化は機能しなくなりました。Javascript:別のファイルからD3内の関数を呼び出す
d3.js:
!function() {
var d3 = { version: "3.5.17" };
function d3_funct() { return d3; } // this function is called in the other file
}();
chord.js:
d3.svg.chord() = function() {
var funct = d3_funct; // doesn't work
};
質問:私は私のスクリプト内で、上記の関数、d3_funct
を使用する方法
chord.js 、d3_funct
が直ちに実行される関数式の中で別のファイルに定義されている場合
オプション:
- 編集d3.jsは
- は、囲むD3機能の名前を変更:(書き換えるとchord.jsにそれをロードするためにjQueryを使用するための機能を引き出すのではなく、直接ファイル
は、私が何かをしないのです
"これは、' this'を使ってグローバル 'd3'オブジェクト内のものを参照することを許可します。" - すべてではない:実際には、ローカル変数(OPがアクセスしようとしているもの)にアクセスすることはできません。 OPの場合、d3コードは意図的にこの方法で記述されているため、アクセスできません。これはJavaScriptのプライベート値パターンです。 – Amadan
D3 v4.0が「モジュール」に分割されました。これがOPに適していると思いますか? –
@Amadan彼は最上位レベルのローカル変数( 'd3'オブジェクトの直接のもの)にアクセスできるはずです。しかし、ええ、閉鎖された関数の中に入る方法はありません - 私は更新でそれを明らかにするでしょう。 –