0
我學習JavaScript的結合,並有測試代碼如下範圍私有函數之前泄漏返回
var text = "Global Text";
var FooObj = {
text: "Foo text",
GetText: function() {
return this.text;
}
};
function BarObject() {
var text = "Private Bar Text";
var BarGetText = FooObj.GetText;
alert(f());
return {
text: "Public Bar Text",
GetText: BarGetText,
f: f
}
function f() {
var text = "Bar f() text";
var t = BarGetText();
return t;
}
}
var obj = BarObject(); // Global Text is alerted
alert(obj.GetText()); //Public Bar Text Text is alerted
alert(obj.f()); // Global Text is alerted
爲f()被調用的OBJ的開始,我希望「私人欄文本」是指這個時.text在FooObj中被引用。很奇怪的是全局範圍內的文本被調用,這與FooObj和BarObject無關。任何人都可以解釋原因
有沒有辦法讓FooObj把BarObject的私有變量暴露給公衆? –
對不起,我想我得到了解決方案。 感謝您的回答 –