と呼ばれるfirst.js
別のファイル内で呼び出されるファイルで変数を使用することは可能second.js
ですか?
first.js
という変数が含まれていますcolorcodes
。
と呼ばれる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>
window
は、はグローバルスコープです。つまり、window.colorCodesと(グローバル)オブジェクトcolorCodesは同じオブジェクトです。
<script>var variable1 = true;</script> <script src="first.js"></script>
first.jsはその変数を見るでしょうか?Google Chrome拡張機能でテストしましたが、機能しませんでした
/* global colorCodes */
上の行に「...が定義されていません」というエラーメッセージを防ぐために追加できます
exportを使用して、最初のファイルから変数をエクスポートできます。
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
export { colorCode };
次に、importを使用して2番目のファイルに変数をインポートします。
//second.js
import { colorCode } from './first.js'
上記の答えが好きだったたが、それでもませんでした
私はdeclaring
これらの変数だったのでinside
jQuery$( document ).ready()
変数を
<script>
タグ内で宣言するようにしてください。
これは機能するはずです-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は確かに他のブラウザーも)
Node.jsを使用すると、モジュールを介して変数をエクスポートできます。
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
module.exports = { colorCode };
次に、モジュール/変数をrequireを使用して2番目のファイルにインポートします。
//second.js
const { colorCode } = require('./first.js')
あなたは使用することができるimport
とexport
のWebPACK /バベルを使用してES6からaproachを、しかし、Node.jsの中で、あなたがする必要があるフラグを有効にして、.mjs拡張子を使用しています。
amplify.jsを見つけました。使い方はとても簡単です。値を保存するには、「myValue」と呼びましょう。
amplify.store("myKey", "myValue")
そしてそれにアクセスするには、
amplify.store("myKey")
私はこれを少し違ったやり方で行っているかもしれません。なぜこの構文を使用するのかはわかりません。昔の本からコピーしました。しかし、私の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を呼び出していることがわかります。両方のスクリプトをロードする必要があるため、これは実行時の効率を向上させませんが、コードを整理しておくのに役立ちます。
最良の方法の1つは、ウィンドウを使用することです。初期状態
<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>
<script src="http://datasource.example.net/first.js"></script><script src="second.js"></script>