举个例子:
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 模式一书。
如果您要使用 Chrome 控制台,您将如何定位变量名称,没有特权方法?
以这段代码为例:
var a_1 = function(){console.log(this)}
a_1();
它记录的窗口对象,您可以浏览到 a_1 - 请参阅所附图片(下面的链接)
console logging the window object
我们可以对匿名立即函数中的name 变量做同样的事情吗?
如果我已经清楚地构建了我的问题,请告诉我。
最佳答案
您似乎在询问是否可以在 Chrome 的控制台中读取该变量。
答案是是。在控制台中键入 window.myobj
并展开对象,如下所示,您将在 name
下看到 "my, oh my"
。
window.myobj -> getName -> <function scope> -> Closure -> name;
如果这不仅仅是出于好奇,并且您希望通过闭包变量获得安全性,那么您将无法实现。 JavaScript 中没有安全性。
关于javascript - 匿名立即函数的私有(private)成员存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23862387/