【发布时间】:2012-02-09 09:55:08
【问题描述】:
$(function(){ var my_value = 'text1'})
但在控制台(我使用的 Safari 控制台)中,我不知道如何访问 my_value 变量,因为它是 function(){} 范围内的局部变量。
有任何解决方法或更好的解决方案吗?
【问题讨论】:
标签: javascript scope
$(function(){ var my_value = 'text1'})
但在控制台(我使用的 Safari 控制台)中,我不知道如何访问 my_value 变量,因为它是 function(){} 范围内的局部变量。
有任何解决方法或更好的解决方案吗?
【问题讨论】:
标签: javascript scope
你需要断点那行 javascript。当您越过那条线时,您应该能够愉快地检查该值。
【讨论】:
展开您的代码块,以便您可以在特定行上设置断点。也可以使用关键字debugger; 显式设置断点:
$(function(){
debugger;
var my_value = 'text1';
})
【讨论】:
有多种方法,您可以在 javascript 代码中添加断点,也可以在控制台中定义一个本地监视变量,以显示您定义的变量的值。
【讨论】:
您可以将数据和函数作为对象传递给window,如下所示:
(function(global){
$(document).ready(function(){
var my_value = 'text1',
aPublicFunction = function(){
// blah blah
},
aPrivateFunction = function(){
// blah blah
};
// prepare what you want window to see.
global.publicAPI = {
my_value: my_value,
aFunction: aFunction
}
});
})(window);
publicAPI.my_value;
// 'text1'
publicAPI.aPrivateFunction();
// no can do!
【讨论】:
正如其他人建议的那样,使用调试器。
对于 Safari(和 Chrome),请查看 Apple's docs,如果您使用的是 Firefox,请查看 Firebug。
【讨论】: