first.js
という別のファイル内のsecond.js
というファイルで変数を使用することは可能ですか?
first.js
にはcolorcodes
という変数が含まれています。
Ferminが言ったように、グローバルスコープ内の変数は、宣言された後に読み込まれたすべてのスクリプトからアクセス可能でなければなりません。また、window
または(グローバルスコープで)this
のプロパティを使用して、同じ効果を得ることができます。
// first.js
var colorCodes = {
back : "#fff",
front : "#888",
side : "#369"
};
...別のファイルで...
// second.js
alert (colorCodes.back); // alerts `#fff`
... htmlファイルで...
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
exportを使用して、最初のファイルから変数をエクスポートできます。
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
export { colorCode };
次に、importを使用して2番目のファイルに変数をインポートします。
//second.js
import { colorCode } from './first.js'
これは動作するはずです-firstfileでグローバル変数を定義し、secondfileからアクセスします:
<script src="/firstfile.js"></script>
<script src="/secondfile.js"></script>
firstfile.js:
var colors = {
text:'#000000',
background:'#aaaaaa',
something_else:'blue'
};
secondfile.js:
do_something_with(colors.background);
スクリプトファイルを読み込む順序は、一部のブラウザー(IE6は確かに、おそらく他のブラウザー)にとって重要です。
上記の答え が言ったことは好きでしたが、私にはうまくいきませんでしたが
私はdeclaring
これらの変数inside
JQuery $( document ).ready()
だったので
そのため、変数を
<script>
タグ内で宣言してください。
amplify.js に出会いました。使い方はとても簡単です。値を保存するには、「myValue」と呼びます。
amplify.store("myKey", "myValue")
そしてそれにアクセスするには
amplify.store("myKey")
カラーコードをグローバル変数に保存すると、別のjavascriptファイルからカラーコードにアクセスできるはずです。
私はこれを少し違ったやり方でやっているかもしれません。この構文を使用する理由がよくわかりませんが、昔からいくつかの本からコピーしました。しかし、私のjsファイルはそれぞれ変数を定義しています。最初のファイルは、理由もなく、Rと呼ばれます。
var R =
{
somevar: 0,
othervar: -1,
init: function() {
...
} // end init function
somefunction: function(somearg) {
...
} // end somefunction
...
}; // end variable R definition
$( window ).load(function() {
R.init();
})
そして、分離したい大きなコードがあれば、それを別のファイルと異なる変数名に入れますが、R変数と関数を参照することはできます。まったく理由もなく、新しいTDを呼び出しました。
var TD =
{
xvar: 0,
yvar: -1,
init: function() {
...
} // end init function
sepfunction: function() {
...
R.somefunction(xvar);
...
} // end somefunction
...
}; // end variable TD definition
$( window ).load(function() {
TD.init();
})
TD 'sepfunction'のどこでR.somefunctionを呼び出すかがわかります。両方のスクリプトをロードする必要があるため、これによりランタイムの効率性が得られないことがわかりますが、コードを整理するのに役立ちます。
Node.jsを使用すると、モジュールを介して変数をエクスポートできます。
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
module.exports = { colorCode };
次に、requireを使用してモジュール/変数を2番目のファイルにインポートします。
//second.js
const { colorCode } = require('./first.js')
Webpack/Babelを使用してES6から import
および export
を使用できますが、Node.jsでは フラグを有効にし、.mjsを使用する必要があります拡張子
最良の方法の1つは、windowを使用することです。INITIAL_STATE
<script src="/firstfile.js">
// first.js
window.__INITIAL_STATE__ = {
back : "#fff",
front : "#888",
side : "#369"
};
</script>
<script src="/secondfile.js">
//second.js
console.log(window.__INITIAL_STATE__)
alert (window.__INITIAL_STATE__);
</script>