programs - javascript pdf



क्या मैं जावास्क्रिप्ट में ऑब्जेक्ट घोषणा के दौरान अन्य गुणों का संदर्भ दे सकता हूं? (5)

इस प्रश्न का उत्तर यहां दिया गया है:

मैं ऐसा कुछ करने की कोशिश कर रहा हूं:

var obj = {
    a: 5,
    b: this.a + 1
}

(5 की बजाय एक ऐसा फ़ंक्शन है जिसे मैं दो बार निष्पादित नहीं करना चाहता जो संख्या देता है)

मैं obj.b से obj.b बाद में असाइन करने के लिए इसे फिर से obj.a सकता हूं, लेकिन क्या मैं इसे घोषणा के दौरान तुरंत कर सकता हूं?

https://src-bin.com


Answer #1

इसे पूरा करने के कई तरीके हैं; मैं यही उपयोग करूंगा:

function Obj() {
    this.a = 5;
    this.b = this.a + 1;
    // return this; // commented out because this happens automatically
}

var o = new Obj();
o.b; // === 6

Answer #2

क्रोम डीबगर में

> var o = {a: 5, b: this.a+1}
undefined
> o.b
NaN
> o.a
5

Answer #3

नहीं, आपके उदाहरण में, इसका मूल्य ऑब्जेक्ट शाब्दिक को संदर्भित नहीं करता है।

ऑब्जेक्ट में किसी अन्य प्रॉपर्टी पर आधारित करने के लिए ऑब्जेक्ट को बनाए जाने के बाद आपको b को मान असाइन करने की आवश्यकता होगी।


Answer #4

नहीं। this वही अर्थ लेगा जैसा कि परिभाषा के बाहर होगा।


Answer #5

यह सही मूल्यों को वापस करना चाहिए:

function () {
   var aVar = 5;
   var bVar = aVar + 1;

return {
    a : aVar,
    b : bVar;  
}
}();





javascript