কমনজেএস মডিউলগুলি রফতানি করা বৈশিষ্ট্যগুলি সংজ্ঞায়িত করার দুটি উপায়ের অনুমতি দেয়। উভয় ক্ষেত্রেই আপনি কোনও অবজেক্ট / ফাংশন ফিরিয়ে দিচ্ছেন। কারণ ফাংশনগুলি জাভাস্ক্রিপ্টে প্রথম শ্রেণির নাগরিক তারা ঠিক অবজেক্টের মতো কাজ করতে পারে (প্রযুক্তিগতভাবে তারা বস্তু)। এটি বলেছিল new
কীওয়ার্ডগুলি ব্যবহার সম্পর্কে আপনার প্রশ্নের একটি সহজ উত্তর রয়েছে: হ্যাঁ। আমি বর্ণনা করব ...
মডিউল রফতানি
আপনি হয় এর exports
সাথে বৈশিষ্ট্য সংযুক্ত করতে প্রদত্ত ভেরিয়েবলটি ব্যবহার করতে পারেন। অন্য মডিউলে একবার প্রয়োজনীয় হয়ে গেলে সেই নির্ধারিত বৈশিষ্ট্যগুলি উপলব্ধ হয়ে যায়। অথবা আপনি মডিউল.এক্সপোর্টের সম্পত্তিতে কোনও বস্তু বরাদ্দ করতে পারেন। উভয় ক্ষেত্রেই যা ফেরত আসে তা হ'ল require()
মানের একটি রেফারেন্স module.exports
।
মডিউলটি কীভাবে সংজ্ঞায়িত করা হয় তার সিউডো কোড উদাহরণ:
var theModule = {
exports: {}
};
(function(module, exports, require) {
// Your module code goes here
})(theModule, theModule.exports, theRequireFunction);
উপরের উদাহরণে module.exports
এবং exports
একই জিনিস। দুর্দান্ত অংশটি হ'ল আপনি আপনার কমনজেএস মডিউলগুলিতে এটির কোনওটি দেখতে পাচ্ছেন না কারণ পুরো সিস্টেমটি এটির যত্ন নেয় আপনার জন্য আপনার যা যা জানা দরকার তা হল একটি রফতানি সম্পত্তি এবং রফতান পরিবর্তনশীল সহ একটি মডিউল অবজেক্ট রয়েছে যা এতে নির্দেশ করে মডিউল.এক্সপোর্টগুলি একই কাজ করে।
নির্মাণকারীদের সাথে প্রয়োজনীয়
সরাসরি আপনাকে একটি ফাংশন সংযুক্ত করতে পারেন যেহেতু module.exports
আপনি মূলত একটি ফাংশন আসতে পারেন এবং কোন ফাংশন মত এটি একটি যেমন পরিচালিত হতে পারে কন্সট্রাকটর italics মধ্যে যে (যেহেতু একটি ফাংশন এবং JavaScript একটি কন্সট্রাকটর মধ্যে একমাত্র পার্থক্য কিভাবে আপনি এটি ব্যবহার করতে মনস্থ হয়। টেকনিক্যালি এখানে কোন পার্থক্য নেই.)
সুতরাং নিম্নলিখিতটি পুরোপুরি ভাল কোড এবং আমি ব্যক্তিগতভাবে এটি উত্সাহিত করেছি:
// My module
function MyObject(bar) {
this.bar = bar;
}
MyObject.prototype.foo = function foo() {
console.log(this.bar);
};
module.exports = MyObject;
// In another module:
var MyObjectOrSomeCleverName = require("./my_object.js");
var my_obj_instance = new MyObjectOrSomeCleverName("foobar");
my_obj_instance.foo(); // => "foobar"
অ-নির্মাণকারীদের জন্য প্রয়োজনীয় for
একই জিনিসটি অ-নির্মাণকারী যেমন ফাংশনগুলির জন্য যায়:
// My Module
exports.someFunction = function someFunction(msg) {
console.log(msg);
}
// In another module
var MyModule = require("./my_module.js");
MyModule.someFunction("foobar"); // => "foobar"
square
থেকে আর বিদ্যমান নেই।Square
new square()