घोषणात्मक शैली जावास्क्रिप्ट

छवि

शायद यह लेख जावास्क्रिप्ट गुरुओं के लिए दिलचस्प नहीं होगा, लेकिन शुरुआती लोगों के लिए, यह संभवतः उपयोगी है।
मैं तुरंत एक आरक्षण कर दूंगा कि तीसरे पक्ष के ढांचे (उदाहरण के लिए jquery) को जोड़ने के बिना लेख में केवल शुद्ध जावास्क्रिप्ट का उपयोग किया जाएगा।

एक घोषणात्मक शैली में जावास्क्रिप्ट लिखना अधिक सुविधाजनक है:


तो चलिए शुरू करते हैं।



शुरू करने के लिए, आइए 3 फाइलें प्राप्त करें:



Index.html फ़ाइल की सामग्री:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="init.js"></script> <!--        --> <script type="text/javascript" src="index.js"></script> <!--   c - --> </head> <style type="text/css"> div { margin:30px; padding:10px; background: #ccc; border:solid 1px #666; font-family:arial; font-size:12px; } </style> <body> <div class="b-block init_block1"> <!--   --> , ))) </div> <div class="init_block2"> <!--   -->   ..))) </div> </body> </html> 


Index.js फ़ाइल:

 /** * ,      * (      ,    ) * @param object elem - ,      * @param string evType -   (: "click","mouseover") * @param function call - - ( ) */ function addEvent(elem,evType,call) { if(elem.addEventListener) { elem.addEventListener(evType, call, false); } else if(elem.attachEvent) { elem.attachEvent('on' + evType, call); } } /** * ,     */ function initStart() { var arrayElem = document.getElementsByTagName('*'); var arrayElemLength = arrayElem.length; for(var i=0;i<arrayElemLength;i++) { var attr = arrayElem[i].className; if(attr) { if(attr.indexOf('init_') !== -1) { var initText = attr.substr(attr.indexOf('init_')); if (initObject[initText]) { initObject[initText](arrayElem[i]) } } } } } /*    ,      */ addEvent(window,'load',initStart); 


Init.js फ़ाइल:

 /** * ,       */ var initObject = { /** *   html-,  class "init_block1"  * @param object elem -  html- (  -) */ init_block1: function(elem) { elem.innerHTML += ' ...    '; }, /** *   html-,  class "init_block2"  * @param object elem -  html- (  -) */ init_block2: function(elem) { elem.innerHTML += '     .    '; addEvent(elem,'click',function(){ alert('!'); }); } } 


तो हर कोई जुड़ा हुआ है, अब मैं समझाता हूँ।

पृष्ठ पर किसी भी ब्लॉक में कुछ तर्क को बांधने के लिए, आपको इस तत्व के वर्ग में initObject ऑब्जेक्ट विधि को निर्दिष्ट करना होगा।
Html एलिमेंट स्वयं (अधिक सटीक रूप से, इसके लिए एक लिंक) विधि को पारित कर दिया गया है, इसके साथ आप कुछ भी कर सकते हैं जैसे कि: किसी घटना को बांधें, डेटा को पास करें, संपत्ति को बदलें, आदि।

ऐसे सरल तरीके से, हम पृष्ठ पर आवश्यक वस्तुओं के लिए एक निश्चित तर्क को बांध सकते हैं।

यह ध्यान देने योग्य है कि initStart फ़ंक्शन पूरी तरह से आदर्श नहीं है - संशोधित करने के लिए कुछ है।
लेकिन यह एक केस स्टडी है, इसलिए मैंने "मौके पर" सब कुछ नहीं किया, मुझे लगता है कि सामान्य अवधारणा पहले से ही स्पष्ट है।

यह कैसे काम करता है, आप यहां देख सकते हैं।
एक उदाहरण संग्रह डाउनलोड करें।

Source: https://habr.com/ru/post/In139990/


All Articles