জাভাস্ক্রিপ্টে সহায়ক ফাংশনগুলির জন্য প্রস্তাবিত পদ্ধতির কী?


10

সহায়ক ফাংশনগুলির জন্য প্রস্তাবিত পদ্ধতির কী? আমি একটি কৌশল চয়ন করতে চাই এবং আমার নতুন "ক্লাস" তৈরি করতে এটির সাথে চালাচ্ছি।

আমি চিন্তা করেছি এমন নকশা বিকল্পগুলি এখানে:

বিকল্প 1: বাইরের স্কোপে সহায়ক ফাংশন, উদাহরণের প্রসঙ্গে ডাকে

function createPane (pane) {
    // logic to create pane
    var proto = Object.create(this.paneList);
    $.extend(paneProto, pane);
    return paneProto;
}

Panes.prototype.initialize = function (panes) {
    var _this = this;
    _.each(panes, function () {
        _this.panes.push(createPane.call(_this, this));
    });
}
  • পেশাদাররা: সরল বাক্য গঠন। createPaneউদাহরণে প্রকাশিত হয় না।
  • কনস: createPane অন্যান্য স্কোপগুলিতে অ্যাক্সেসযোগ্য।

বিকল্প 2: বন্ধে সহায়ক ফাংশন, উদাহরণের প্রসঙ্গে ডাকে

Panes.prototype.initialize = (function () {

    function createPane (pane) {
        // same logic as last createPane
    }

    return function (panes) {
        // same logic as before - calls createPane
    }

})();
  • পেশাদাররা: createPane উদাহরণে প্রকাশিত হয় না।
  • কনস: নিম্ন পাঠযোগ্যতা এবং পরীক্ষাযোগ্যতা; এই সাহায্যকারীর পরীক্ষা অবশ্যই আরম্ভের সুযোগে ঘটতে হবে।

বিকল্প 3: একটি ব্যক্তিগত পদ্ধতি ইঙ্গিত করতে নাম _ প্রস্তুত করুন

Panes.prototype._createPane = function (pane) {
    // same logic as last createPane
}

Panes.prototype.initialize = function (panes) {
    // same logic as last, except calls this._createPane
}
  • পেশাদাররা: এর অন্তর্নিহিত প্রসঙ্গটি _createPaneহ'ল উদাহরণ। বাইরে থেকে পরীক্ষার যোগ্যতা।
  • কনস: উদাহরণে সহায়ক ফাংশন প্রকাশ করা Exp

বিকল্প 4: সাহায্যকারী আর্গুমেন্ট হিসাবে ফাংশন

Panes.prototype.initialize = (function (createPane) {

    return function (panes) {
        // same logic as before - calls createPane
    }

})(function createPane () {
   // same logic as last createPane
});
  • পেশাদাররা: createPane উদাহরণে প্রকাশিত হয় না। সহায়ক ফাংশনগুলির একে অপরের অ্যাক্সেসের অভাব রয়েছে।
  • কনস: নিম্ন পাঠযোগ্যতা এবং পরীক্ষাযোগ্যতা; এই সাহায্যকারীর পরীক্ষা অবশ্যই আরম্ভের সুযোগে ঘটতে হবে।

উত্তর:


4

প্রথম জাভাস্ক্রিপ্টের ক্লাস নেই

দ্বিতীয়ত, আপনার তৃতীয় বিকল্পটি আমার কাছে আরও যুক্তিযুক্ত বলে মনে হচ্ছে, তবে এটি আপনার প্রয়োজনীয়তার সাথেও অত্যন্ত নির্ভর করে। এছাড়াও আপনাকে সাহায্যকারী ফাংশনটি প্রকাশ করার বিষয়ে খুব বেশি চিন্তিত হওয়া উচিত নয়। সমাধানের পক্ষগুলি আমার সাথে সমঝোতার বিষয়টি পুরোপুরি ন্যায়সঙ্গত করে।

তৃতীয়ত, বিকাশকারী হিসাবে আপনার সময়টি মূল্যবান; তুচ্ছ কাজগুলি কার্যকর করা, সময় সাপেক্ষ এবং মানব-ত্রুটির জন্য আরও সর্বদা কঠিন করবেন না। সোর্স কোডের সরলতা নিজেই একটি দুর্দান্ত বৈশিষ্ট্য।


1
মাহদি আপনাকে ধন্যবাদ। আমি দীর্ঘ সময় জাভাস্ক্রিপ্ট ব্যবহারকারী এবং হ্যাঁ, এ কারণেই আমি উদ্ধৃতিতে "ক্লাস" লিখেছিলাম। যদিও, পরিভাষা বিভ্রান্তিমূলক, এবং অনেক পেশাদার সংস্থাগুলি জাভাস্ক্রিপ্টের কনস্ট্রাক্টর ফাংশনকে ক্লাস হিসাবে উল্লেখ করে। বিকাশকারী.মোজিলা.আর.ইন-
ইউএস

এবং সরলতার বিষয়ে পরামর্শের জন্য আপনাকে ধন্যবাদ। আমার প্রশ্নটি কোনও কিছুর চেয়ে সুযোগ, অ্যাক্সেসযোগ্যতার চেয়ে বেশি। কঠোর বনাম লুজ।
টেলরম্যাক

@ টেলরম্যাক আপনি অত্যন্ত স্বাগতম, আশা করি এটি সাহায্য করবে।
মাহদী

@ মাহদী, ক্যারেন্টলি জাভস্ক্রিপ্টের ক্লাস রয়েছে।
মেনাই আলা এডডাইন

1

পরিসংখ্যানগুলি ফাংশন আইএমও সম্পর্কিত, আপনার ক্ষেত্রে আপনার একটি ব্যক্তিগত স্ট্যাটিক রয়েছে, তাই ...

Panes._createPane=function(pane){}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.