以例如:
var myobj; // this will be the object
(function () {
// private members
var name = "my, oh my";
// implement the public part
// note -- no `var`
myobj = {
// privileged method
getName: function () {
return name;
}
};
}());
myobj.getName(); // "my, oh my”
来自Stefanov的JavaScript Patterns一书。
如果您要使用Chrome控制台,那么如何在没有特权方法的情况下找到变量名称?
以此代码为例:
var a_1 = function(){console.log(this)}
a_1();
它记录的窗口对象,您可以浏览到a_1 - 查看附加的图像(链接如下)
console logging the window object
我们可以对匿名立即函数中的 name 变量做同样的事吗?
如果我清楚地构建了我的问题,请告诉我。
答案 0 :(得分:2)
您似乎在询问是否可以在Chrome控制台中读取该变量。
答案是 是 。在控制台中输入window.myobj
并展开对象,如下所示,您会在"my, oh my"
下看到name
。
window.myobj -> getName -> <function scope> -> Closure -> name;
如果这不仅仅是一种好奇心,并且你希望通过闭包变量获得安全性,那么你就不会得到它。 JavaScript中有没有安全性。