2015-04-29 68 views
0

我跟隨此blog和玩代碼。調用私有方法

function MyClass() { 
    var self = this; 
    var privateVar = 'My Private Variable'; 
    this.publicVar = 'My Public Variable'; 
    var privateFunction = function() { 
    self.publicVar += ' Modified By A Private Fucntion'; 
    alert(self.publicVar); 
    }; 
    privateFunction(); //1: why this code not working. kindly give the reason for this. 
} 

我該如何撥打privateFunction? 我在尋找的輸出//「我的私有變量通過私有函數修改」

+0

它以什麼方式不起作用?警報沒有被調用,或者警報顯示的值與您預期的不同?你怎麼使用MyClass? –

+3

工作得很好,你真的在​​哪裏實例化MyClass嗎? – axelduch

回答

0

此代碼應該有效。很可能你沒有在任何地方實例化MyClass。

function MyClass() { 
var self = this; 
var privateVar = 'My Private Variable'; 
this.publicVar = 'My Public Variable'; 
var privateFunction = function() { 
    self.publicVar += ' Modified By A Private Fucntion'; 
    alert(self.publicVar); 
}; 
privateFunction(); // why this code not working.. 
}; 
new MyClass(); //Run MyClass, triggering all code. 
+0

應該是'新的MyClass',否則'this'將引用'window'或任何全局對象(在nodejs和類似的情況下) –

+0

感謝兄弟......請您爲Java中的腳本實現oops概念提供任何書籍。從那裏我學習原型,課堂和所有的東西 – Brijesh