我目前正在做关于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();