क्या किसी फ़ाइल में एक चर का उपयोग करना संभव है जिसे first.js
दूसरी फ़ाइल के अंदर बुलाया जाता हैsecond.js
?
first.js
नामक एक चर होता है colorcodes
।
क्या किसी फ़ाइल में एक चर का उपयोग करना संभव है जिसे first.js
दूसरी फ़ाइल के अंदर बुलाया जाता हैsecond.js
?
first.js
नामक एक चर होता है colorcodes
।
जवाबों:
जैसा कि फर्मिन ने कहा, वैश्विक दायरे में एक चर घोषित होने के बाद भरी हुई सभी लिपियों के लिए सुलभ होना चाहिए। आप एक ही प्रभाव प्राप्त करने के लिए 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 */
रोकने के लिए ऊपर की लाइन पर जोड़ सकते हैं "... परिभाषित नहीं है" त्रुटि संदेश
आप का उपयोग कर पहली फ़ाइल से चर निर्यात कर सकते हैं निर्यात ।
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
export { colorCode };
फिर, आयात का उपयोग करके दूसरी फ़ाइल में चर आयात करें ।
//second.js
import { colorCode } from './first.js'
मुझे क्या पसंद आया इसका जवाब ऊपर दिया गया है कहा गया, लेकिन हालांकि, इसने मेरे साथ काम नहीं किया
क्योंकि मैं declaring
ये चर inside
JQuery था$( document ).ready()
इसलिए सुनिश्चित करें कि आप
<script>
टैग के अंदर अपने चरों को कहीं और नहीं घोषित करते हैं
यह काम करना चाहिए - फर्स्टफाइल में एक वैश्विक वैरिएबल को परिभाषित करें और इसे सेकंडफाइल से एक्सेस करें:
<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 };
फिर, आवश्यकता का उपयोग करके दूसरी फ़ाइल में मॉड्यूल / चर आयात करें।
//second.js
const { colorCode } = require('./first.js')
आप उपयोग कर सकते हैं import
और export
ES6 से aproach Webpack / कोलाहल का उपयोग कर, लेकिन Node.js में आप की जरूरत है एक झंडा सक्षम करें, और .mjs एक्सटेंशन का उपयोग करता।
मैं amplify.js भर में आया था । यह वास्तव में उपयोग करने के लिए सरल है। मान संग्रहीत करने के लिए, इसे "myValue" कहते हैं, जो आप करते हैं:
amplify.store("myKey", "myValue")
और इसे एक्सेस करने के लिए, आप करते हैं
amplify.store("myKey")
मैं इसे थोड़ा अलग तरीके से कर सकता हूं। मुझे यकीन नहीं है कि मैं इस वाक्यविन्यास का उपयोग क्यों करता हूं, इसे बहुत पहले किसी किताब से कॉपी किया था। लेकिन मेरी प्रत्येक js फाइलें एक चर को परिभाषित करती हैं। पहली फ़ाइल, बिना किसी कारण के, आर कहा जाता है:
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();
})
और फिर अगर मेरे पास एक बड़ा कोड है जिसे मैं अलग करना चाहता हूं, तो मैंने इसे एक अलग फ़ाइल और एक अलग चर नाम में डाल दिया, लेकिन मैं अभी भी आर चर और फ़ंक्शन का संदर्भ दे सकता हूं। मैंने बिना किसी अच्छे कारण के नए को एक टीडी कहा है:
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();
})
आप देख सकते हैं कि टीडी 'सीफंक्शन' में मैं आर.सोमफंक्शन को कहां कहता हूं। मुझे लगता है कि यह कोई रनटाइम क्षमता नहीं देता है क्योंकि दोनों लिपियों को लोड करने की आवश्यकता होती है, लेकिन इससे मुझे अपना कोड व्यवस्थित रखने में मदद मिलती है।
एक सबसे अच्छा तरीका खिड़की का उपयोग करके है। प्रारम्भिक अवस्था
<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>