私は3つのスクリプトファイルを持っています。 main.js、script1.js、script2.js。異なるJSファイル間で同じスコープ変数を共有する方法
function IncludeJs(sFileName) {
document.writeln('<script type="text/javascript" src="' + sFileName + '"></script>');
}
IncludeJs("../script1.js");
IncludeJs("../script2.js");
script1.jsとscript2.jsコード同じ名前空間の下にある:
main.jsはただドキュメントにスクリプトがあることがあります。
script1.js:関数func1が定義されていないので、関数func2が動作していない
var sharedNamespace = sharedNamespace || {};
(function() {
"use strict";
function func2(){
return func1();
}
}).apply(sharedNamespace);
:
var sharedNamespace = sharedNamespace || {};
(function() {
"use strict";
function func1(){
....
}
}).apply(sharedNamespace);
script2.js。私はscript1.jsとscript2.jsを共有変数で同じスコープで使うことができますか?
sharedNamespace.func1 = function(){}
の解決策、私は自分のライブラリを使用するクライアントにこの機能を公開したくないので、私にとっては最悪です...
要件があると不可能です。あなたは誰にもその機能を公開する必要があるか、または単一のスクリプトを持つ必要があります。非公開の機能と別のスクリプトとの共有機能を持つ方法はありません。 – vlaz
[javascript - プロトタイプ定義の関数からプライベートメンバー変数にアクセスする]の可能な複製(http://stackoverflow.com/questions/436120/javascript-accessing-private-member-variables-from-prototype-defined-functions) – yuvi