只是想知道如果我失去了一些東西或沒有,但我試圖做到以下幾點:從內部/私人功能調用公共功能?
(function() {
var thing = function() {
var doIt = function() {
console.log("just do it");
this.updateValue(5);
};
return {
updateValue: function(val) {
console.log('updating value: ' + val);
},
go: function() {
doIt();
}
}
};
var t = thing();
t.go();
}())
這將導致「只管去做」顯示在控制檯緊隨其後的錯誤了B/C,它說「 updateValue「不是一個函數。我想知道,一個內部/私有函數(例如「doIt」)可以調用一個公共函數(例如「updateValue」)嗎?也許這只是糟糕的設計,你永遠不應該真的想這樣做,我實際上已經重構了我的代碼,以避免/不這樣做,但我很好奇,如果這是可能的。
在此先感謝。
感謝大家誰在那裏的答案。 @SLaks和@Alnitak我明白你的意思了,謝謝指出。 @ andreas-grech - 我選擇了你的回答作爲「答案」b/c我喜歡「暴露」的想法,我只是將其命名爲「api」:) – codecraig 2011-05-06 13:11:09
我通常儘量避免使用「this」因爲如果你對它不是很小心的話,它會咬你。 如果您想了解更多信息,請閱讀以下內容:http://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/ – 2011-05-06 14:09:29