first.js
Adlı başka bir dosyanın içinde adlandırılan bir dosyada değişken kullanmak mümkün müdür second.js
?
first.js
adlı bir değişken içeriyor colorcodes
.
first.js
Adlı başka bir dosyanın içinde adlandırılan bir dosyada değişken kullanmak mümkün müdür second.js
?
first.js
adlı bir değişken içeriyor colorcodes
.
Yanıtlar:
Fermin'in dediği gibi, global kapsamdaki bir değişken bildirildikten sonra yüklenen tüm komut dosyalarına erişebilmelidir. Aynı etkiyi elde etmek için window
veya öğesinin (global kapsamda) bir özelliğini de kullanabilirsiniz this
.
// first.js
var colorCodes = {
back : "#fff",
front : "#888",
side : "#369"
};
... başka bir dosyada ...
// second.js
alert (colorCodes.back); // alerts `#fff`
... html dosyanızda ...
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
window
olduğu window.colorCodes ve (genel) nesne colorCodes aynı nesne yani - küresel kapsamı.
<script>var variable1 = true;</script> <script src="first.js"></script>
first.js bu değişkeni görecek mi? Google Chrome uzantısında test ettim ve işe yaramadı
/* global colorCodes */
"... tanımlı değil" hata mesajını önlemek için yukarıdaki satıra ekleyebilirsiniz
Dışa aktarmayı kullanarak değişkeni ilk dosyadan dışa aktarabilirsiniz .
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
export { colorCode };
Ardından, import komutunu kullanarak değişkeni ikinci dosyaya alın .
//second.js
import { colorCode } from './first.js'
Yukarıdaki cevabın hoşuna gitti ama benimle çalışmadı.
çünkü declaring
bu değişkenlerim inside
JQuery$( document ).ready()
<script>
etiketin içindeki değişkenlerinizi başka bir yerde belirtmediğinizden emin olun
Bu, - birinci dosyada genel bir değişken tanımlamalı ve ona ikinci dosyadan erişmelidir:
<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);
Komut dosyası dosyalarını yükleme sıranızın bazı tarayıcılar için önemli olduğunu unutmayın (IE6 kesin, belki diğerleri)
Node.js'yi kullanarak değişkeni modül aracılığıyla dışa aktarabilirsiniz.
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
module.exports = { colorCode };
Ardından, modülü / değişkeni gerektiren kullanarak ikinci dosyaya alın.
//second.js
const { colorCode } = require('./first.js')
Webpack / Babel kullanarak ES6'nın import
ve export
yaklaşımını kullanabilirsiniz , ancak Node.js'de bir bayrağı etkinleştirmeniz ve .mjs uzantısını kullanmanız gerekir.
Ben amplify.js ile karşılaştım . Kullanımı gerçekten çok basit. Bir değeri saklamak için buna "myValue" diyelim, şunları yapabilirsiniz:
amplify.store("myKey", "myValue")
Ve ona erişmek için
amplify.store("myKey")
Bunu biraz farklı yapıyor olabilirim. Bu sözdizimini neden kullandığımdan emin değilim, uzun zaman önce bir kitaptan kopyaladım. Ama benim js dosyalarımın her biri bir değişken tanımlar. İlk dosyaya, hiçbir nedenle, R denir:
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();
})
Ve sonra ayırmak istediğim büyük bir kod parçam varsa, ayrı bir dosyaya ve farklı bir değişken adına koydum, ancak yine de R değişkenlerine ve işlevlerine başvurabilirim. Yeni TD'yi hiç iyi bir sebep olmadan aradım:
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();
})
Gördüğünüz gibi TD 'ayrılığı' nda R.somefunction diyorum. Her iki komut dosyasının da yüklenmesi gerektiğinden bunun herhangi bir çalışma zamanı verimliliği sağlamadığını anlıyorum, ancak kodumu düzenli tutmama yardımcı oluyor.
En iyi yollardan biri pencereyi kullanmaktır. BAŞLANGIÇ HALİ
<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>