Javascript 匿名立即函数的私有成员存储在哪里?
例如:Javascript 匿名立即函数的私有成员存储在哪里?,javascript,console,console.log,private-methods,Javascript,Console,Console.log,Private Methods,例如: 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 () {
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-查看附加的图像(下面的链接)
我们可以对匿名立即数函数中的name变量执行同样的操作吗
让我知道我是否已经清楚地构建了我的问题。您似乎在问是否可以在Chrome的控制台中读取变量 答案是肯定的。在控制台中键入
window.myobj
并展开如下所示的对象,您将在name
下看到“我的,我的”
window.myobj->getName->->->Closure->name;
如果这不仅仅是一种好奇,而且您希望通过闭包变量实现安全性,那么您就不会得到它。JavaScript中没有安全性。是的!这就是我要找的。问题基于好奇心/学习兴趣。谢谢@cookie! window.myobj -> getName -> <function scope> -> Closure -> name;