मैं 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