我目前正在做關於JS中的範圍和提升的一些實驗。在這裏我有兩個以不同方式讓我困惑的例子。首先,我爲一個名爲parent的變量分配了一個匿名函數。顯然返回子函數可以訪問其外部函數範圍,以便它可以訪問文本variable.It清晰,easy.Here是代碼..對象文字方法的範圍
var parent = function() {
var text = 'i can access the container';
return function() {
alert(text);
}
}();
parent();
後來我想返回一個對象,而不是其中有一個方法的功能。這個方法不是直接在直接調用函數的主體中,而是在返回的對象內部定義的,但它可以訪問名爲private的變量,該變量包含一個字符串值。如何將此變量放在範圍內f這個對象的文字方法?
var parent = (function() {
var text = 'private variable';
return {
prop: 'i am the property',
method: function() {
alert('i can access ' + text);
}
}
})();
parent.method();