我敢肯定,此问题之前已在某处得到解答,但我找不到它。
如果在函数中定义了变量,保存它以供以后使用的最佳做法是什么? 1.“全球”保存?
foo = 'bar';
...
function bar(){
...
foo = 'bat';
return foo;
}
...
此处,变量将在稍后更改。 2.或者将其保存在HTML-DOM中隐藏的表单字段中?
`Thanxs!
答案 0 :(得分:2)
将其保存为全局JavaScript变量是目前最有效的。
编辑:如果要保存的数据与页面上的元素相关联(例如,表中的每一行都有一些与之关联的数据),并且您正在使用jQuery,有一个data() method比在元素或类似的东西上设置属性更有效。
答案 1 :(得分:2)
它取决于上下文,但可能是:在一个闭包顶层定义的变量中,它包含了它所适用的函数集。
即
var exports = function () {
var stored_data;
function set_data(foo) {
stored_data = foo;
}
function get_data() {
return stored_data;
}
return { get: get_data, set: set_data };
}();
这可以避免其他脚本(或您自己的其他部分,可能非常大的脚本)意外覆盖它的风险。
答案 2 :(得分:1)
HTML5规范定义了此问题的解决方案:如果您使用的是HTML5,则可以在DOM中指定数据属性。
有关详细信息,请参阅此页:http://ejohn.org/blog/html-5-data-attributes/
现在这是标准化的方式,所以我认为它被认为是最佳实践。编写我上面链接的博客的John Resig也是JQuery的作者,所以如果它对他来说足够好,我应该争辩谁。
真正的好消息是,您甚至不必使用兼容HTML5的浏览器来使用此技术 - 它已经可以在旧版浏览器中使用;它只是现在它被编码到标准中,并且有一种确定的方法来实现它。
也就是说,只要你避免过多地污染命名空间,你的Javascript中的全局变量就没有错,从性能的角度来看它会更有效,所以这种方法也有很多优点。 / p>