शुद्ध वेनिला जावास्क्रिप्ट का उपयोग करके क्या आप इसे छोटा कर सकते हैं? या इससे भी अधिक कुशल? यह jQuery के '$' फ़ंक्शन की "प्रतिलिपि" है। हालांकि यह अलग काम करता है, यहां कोड है:

function $(id,from = document) {
    if(!'#.<'.includes(id.charAt(0))) id = '#' + id;
    if (id.charAt(0) == '<') id = id.charAt(id.length-1) == '>' ? id.substring(1,id.length-1) : id.substring(1,id.length);
    return from.querySelectorAll(id).length == 1 ? from.querySelectorAll(id)[0] : from.querySelectorAll(id).length == 0 ? false : from.querySelectorAll(id);
}
-1
JoeTheHobo 8 नवम्बर 2019, 03:38
3
इस फ़ंक्शन को अनुकूलित करने का प्रयास करने के बजाय, आप कॉल करने वालों पर काम करना बेहतर समझते हैं, उन्हें अनावश्यक रूप से कॉल करने के बजाय फ़ंक्शन के परिणामों को कैश करने के लिए प्राप्त करना।
 – 
Barmar
8 नवम्बर 2019, 03:41
यह codereview.stackexchange.com नहीं है
 – 
Zze
8 नवम्बर 2019, 06:30
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह codereview.stackexchange.com . पर है
 – 
Zze
8 नवम्बर 2019, 07:23

1 उत्तर

कम से कम आप from.querySelectorAll(id) के परिणाम को कई बार मूल्यांकन करने के बजाय एक चर में निकाल सकते हैं।

और दूसरे में, जैसा कि बरमार ने सुझाव दिया था, इस फ़ंक्शन आमंत्रण के परिणाम को कहीं से कैश करें और इस फ़ंक्शन को सरल और बेवकूफ (KISS) रखें।

1
Max Peng 9 नवम्बर 2019, 08:37