2016-02-13 15 views
5

आप समझा सकते हैं साथ सेटर कारण है कि मैं इस उदाहरण मेंफील्ड, गेटर और एक ही नाम

Uncaught RangeError: Maximum call stack size exceeded

मिलता है। कार्यों का अनुक्रम क्या है?

"use strict"; 

let myClass = class myClass{ 
    constructor(name){ 
    this.name = name; 
    } 
    get name() { return this.name; } 
    set name(name){ this.name = name; } 
} 

let myObj = new myClass("John"); 

उत्तर

2

आप सेटटर से सेटर को असीमित रूप से लूपिंग कर रहे हैं। मेरे आश्चर्य करने के लिए it's not trivial to have variables private to a class

"use strict"; 
 

 
let myClass = class myClass { 
 
    constructor(name) { 
 
    this.name = name; 
 
    } 
 

 
    get name() { 
 
    return this._name; 
 
    } 
 

 
    set name(name) { 
 
    this._name = name; 
 
    } 
 
} 
 

 
let myObj = new myClass("John"); 
 

 
console.log(myObj);

:

set name(name) { 
    this.name = name; // <-- `this.name` calls the `set`ter again 
} 

आप किसी प्रकार की अलग नाम का समर्थन कर चर का उपयोग करना चाहिए।

+0

मुझे यह मिला, मदद के लिए धन्यवाद –

संबंधित मुद्दे