क्या आपके पास कोई विचार है कि मैं इसे कैसे काम पर ला सकता हूं?

const TAX_RATE = 0.08;

var purchase_amount = 10;

function addTax(amt) {
  amt += amt * TAX_RATE;
}

addTax( purchase_amount );

console.log( purchase_amount );
0
t3ol5 1 अप्रैल 2018, 05:41

4 जवाब

सबसे बढ़िया उत्तर

आपके addTax फ़ंक्शन के भीतर amt को पुन: असाइन करने से इसके बाहर की कोई भी चीज़ प्रभावित नहीं होती है, इसलिए आपको नया मान वापस करने की आवश्यकता है, और जब आप फ़ंक्शन को कॉल करते हैं तो इसे purchase_amount को असाइन किया जाता है।

const TAX_RATE = 0.08;
let purchase_amount = 10;
function addTax(amt) {
  return amt + amt * TAX_RATE;
}
purchase_amount = addTax( purchase_amount );
console.log( purchase_amount );
1
CertainPerformance 1 अप्रैल 2018, 02:42

जबकि अन्य उत्तर सही हैं, कि जावास्क्रिप्ट मूल्य द्वारा पारित है, और संदर्भ द्वारा पारित नहीं है, यह वास्तव में वस्तुओं के मामले में नहीं है।

मैं निश्चित नहीं हूं बिल्कुल क्यों जावास्क्रिप्ट ऐसा करता है (कोई और सटीक तर्क को बेहतर ढंग से समझाने में सक्षम हो सकता है) लेकिन जब आप किसी ऑब्जेक्ट को फ़ंक्शन में पास करते हैं, तो मूल ऑब्जेक्ट को फ़ंक्शन के भीतर संशोधित किया जाता है।

इसलिए यदि आप ऐसा करते हैं, तो यह कोई बाहरी मान निर्धारित किए बिना काम करेगा। यह उन मामलों में विशेष रूप से सहायक होगा जहां आप कस्टम क्लास ऑब्जेक्ट्स का उपयोग कर रहे हैं।

function addTax( obj ) {
    if ( typeof obj['tax_rate'] == "undefined" ) return;
    
    obj['cost'] = obj['cost'] + ( obj['cost'] * obj['tax_rate'] );
    delete obj['tax_rate'];
}

var myTaxObject = {
    cost: 10,
    tax_rate: 0.08
}

addTax( myTaxObject );

console.log( myTaxObject );

सोच के लिए भोजन।

1
user4017359user4017359 1 अप्रैल 2018, 03:08

जावास्क्रिप्ट संदर्भ द्वारा पैरामीटर पास नहीं करता है, इसलिए आपको फ़ंक्शन से आवश्यक मान वापस करना होगा, या ऑब्जेक्ट संदर्भ को फ़ंक्शन के मान के रूप में पास करना होगा। जावास्क्रिप्ट में संदर्भ द्वारा वेरिएबल पास करें चेक करें।

1
F0G 1 अप्रैल 2018, 03:01

फ़ंक्शन से मान लौटाएं। amt केवल फ़ंक्शन के अंदर एक स्थानीय चर बन जाता है

const TAX_RATE = 0.08;

var purchase_amount = 10;

function addTax(amt) {
  amt += amt * TAX_RATE;
  return amt;
}

var newAmt = addTax(purchase_amount);

console.log(newAmt);
1
brk 1 अप्रैल 2018, 02:44