Thursday, 15 January 2015

Private members in JavaScript object with getters and setters -


मैं JS ऑब्जेक्ट का परीक्षण कर रहा हूं

  gl.test = function () {var $ = JQuery; Var _private = null; Var _setStr = फ़ंक्शन (टी) {_private = t; } Var _getStr = फ़ंक्शन () {वापसी _private; } Var obj = {init: फ़ंक्शन (str) {_setStr (str); }, परीक्षण: फ़ंक्शन () {console.log (_getStr ()); }, ईओएफ: नल}; वापसी obj; } ();  

निम्न निष्पादित करते समय:

  var test1 = gl.test; Var test2 = gl.test; test1.init ( 'test1'); test2.init ( 'test2'); test1.test (); test2.test ();  

परिणाम test2 test2

के रूप में वापस आ जाता है कोई फर्क नहीं पड़ता है और test1 और test2 के लिए अपेक्षित होगा:

  var test1 = gl.test; test1.init ( 'test1'); test1.test (); Var test2 = gl.test; test2.init ( 'test2'); test2.test ();  

क्या मैं यहाँ कुछ गलत कर रहा हूं?

जैसा कि में बताया गया है टिप्पणियां, आप gl.test की एक नई आवृत्ति को प्रारंभ नहीं कर रहे हैं। आप इसे बदल सकते हैं IIFE न हो और नया कीवर्ड का उपयोग करें

  var gl = {} gl.test = function () {....} var Test1 = नया gl.test (); Var test2 = नया gl.test ();  

लाइव उदाहरण:


No comments:

Post a Comment